基于单片机的舵机控制
冲计数,一般工作正脉冲宽度小于周期的1/8,这样可以在1个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20ms的基准时间。
第1次定时器中断T0按20ms的 1/8设置初值,并设置输出I/O口,第1次T0定时中断响应后,将当前输出I/O口对应的引脚输出置高电平,设置该路输出正脉冲宽度,并启动第2次定时器中断,输出I/O口指向下一个输出口。第2次定时器定时时间结束后,将当前输出引脚置低电平,设置此中断周期为20ms的1/8减去正脉冲的时间,此路 PWM信号在该周期中输出完毕,往复输出。在每次循环的第16次(2×8=16)中断实行关定时中断T0的操作,最后就可以实现8路舵机控制信号的输出。
也可以采用外部计数器进行多路舵机的控制,但是因为常见的8253、8254芯片都只有3个计数器,所以当系统需要产生多路PWM信号时,使用上述方法可以减少电路,降低成本,也可以达到较高的精度。调试时注意到由于程序中脉冲宽度的调整是靠调整定时器的初值,中断程序也被分成了8个状态周期,并且需要严格的周期循环,而且运行其他中断程序代码的时间需要严格把握。
在实际应用中,采用51单片机简单方便地实现了舵机控制需要的PWM信号。对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM占空比 (0.5~2.5ms 的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。
参考文献
1胡汉才.单片机原理及接口技术.清华大学出版社.1996
2王时胜,姜建平.采用单片机实现PWM式D/A转换技术.电子质量.2004
3刘歌群.卢京潮.闫建国.薛尧舜.用单片机产生7路舵机控制PWM波的方法.机械与电子.2004
舵机控制 相关文章:
- 基于1553B总线的航天大功率电动舵机控制器设计(12-21)
- AT89C2051多路舵机控制电路(11-22)
- 基于MSP430的舵机控制系统设计(11-11)
- 利用MCS-51单片机PWM信号进行舵机控制(12-30)
- 基于舵机控制的仿生鱼设计(12-01)
- 基于PIC18F452单片机的仿生机器鱼的舵机控制(11-24)