智能车制作

标题: 舵机 51单片机 舵机 pwm [打印本页]

作者: This_Is_It    时间: 2013-10-13 20:33
标题: 舵机 51单片机 舵机 pwm
#include <reg52.h>
unsigned int int_time;  //用于记录 溢出的次数。
sbit PWM=P1^4;           //舵机的控制位。

void init() //初始化中断
{

   TMOD=0x01;              
   EA=1;               
   ET0=1;                 
         TH0 = 0xFB;  
   TL0 = 0xAE;  //100us
   TR0=1;     
   int_time=0;  
}
                        
void occupy(int all,int part)  //占用宽度,即调节脉宽PWM中高电平的时间占用
{
  if(int_time>all)  //all表示一个周期所用int_time(中断一次的时间)的次数,  
   int_time=0;
  if(int_time<part) //part表示一个周期类高电平时所用int_time的次数。
   PWM=1;
  else
   PWM=0;   
}

  main()
  {  init();
  
     while(1)
   {occupy(200,150);}
  
  
  
  
  }
void ABC(void) interrupt 1               //
{
TH0 =0xFB;
TL0 =0xAE;
int_time++;   
}  
   求大神为何该程序不能让我的舵机正常的偏转。


作者: 凌心    时间: 2013-10-13 21:00
用示波器看下波形是不是正常,确定下是软件问题还是硬件问题。
作者: Jyoun    时间: 2013-10-14 10:54
本帖最后由 Jyoun 于 2013-10-14 10:57 编辑

你先去学习舵机的资料吧,你这么大占空比,肯定不对的。舵机不是所有频率都能工作,也不是所有占空比都能正常打角。
作者: Jyoun    时间: 2013-10-14 10:55
本帖最后由 Jyoun 于 2013-10-14 10:59 编辑

频率好像对了的,但是你给的占空比回直接打满。
作者: 音之夏萤    时间: 2013-10-15 09:14
楼上正解,舵机有一定占空比范围的,你要查看舵机资料
作者: This_Is_It    时间: 2013-10-16 13:34
凌心 发表于 2013-10-13 21:00
用示波器看下波形是不是正常,确定下是软件问题还是硬件问题。

问题解决了,谢谢。你的建议。我用示波器测了一下周期 ,大的那个吓人啊!!!我的是周期问题,解决了之后就可以正常的偏转了。顺便问一下,车子调试的时间长,电池电量变少了 ,同样的占空比 会影响舵机的偏转角吗?
作者: This_Is_It    时间: 2013-10-16 13:36
Jyoun 发表于 2013-10-14 10:54
你先去学习舵机的资料吧,你这么大占空比,肯定不对的。舵机不是所有频率都能工作,也不是所有占空比都能正 ...

谢谢你的回答,我的占空比的确不对,但最终发现问题处在周期和中断时间上。
作者: 凌心    时间: 2013-10-16 13:49
This_Is_It 发表于 2013-10-16 13:34
问题解决了,谢谢。你的建议。我用示波器测了一下周期 ,大的那个吓人啊!!!我的是周期问题,解决了之后 ...

理论上是不会的。另外电池电量变少只要在正常范围内舵机是不会受影响的啊。





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2