基于AT89S52单片机的舵机控制系统设计
扫描二维码
随时随地手机看文章
摘要:文中设计了一种基于AT89S52单片机的舵机控制系统,单片机通过定时中断产生脉宽调制信号(PWM)来控制Futaba-S3003舵机转动。文中给出了系统的电路原理图和程序设计思路。
关键词:单片机;AT89S52;舵机
舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并能够保持的控制系统。能够在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统很容易与之接口。鉴于舵机广泛的应用,文中设计了一种基于AT89S52单片机的舵机控制系统。
1 Futaba-S3003舵机
常见的舵机厂家有:日本的Futaba、JR、SANWA等,国产的有北京的新幻想、吉林的振华等。之所以用Futaba-S3003是因为这个型号是市场上最常见的,也是价格相对较便宜的一种。图1为Futaba-S3003舵机的实物图,图2为Futaba-S3003舵机的引线示意图。
舵机输出轴的转角由周期为20ms的脉冲信号控制,脉冲信号的脉宽从0.5ms变化到2.5ms,舵机输出轴的角度便随之从0°线性变化到180°,以几个特殊角度说明舵机输出转角与输入信号脉冲宽度之间的关系,如图3所示。
2 舵机控制系统设计
要想实现对舵机的控制,由舵机的工作原理可知,只需生成与所需位置角度相对应的脉冲信号,即脉宽与位置角度相对应的周期为20ms的脉冲信号。这种信号很容易由单片机生成,而且脉宽精度可以达到1μs,则舵机转动角度精度可达1μs×1 80°/2ms=0.09°。
舵机控制系统的proteus仿真原理图如图4所示,其中舵机的连接与图2所示接法不一致,这是由于proteus软件对舵机各引线的定义与Futaba-S3003不一致,实际电路的连接应该以图2为准。
与单片机的P1.0脚相连的按钮控制舵机角度增加,与P1.1脚相连的按钮控制舵机角度减小,与P1.2脚相连的按钮控制舵机角度回到初始位置,在本设计中使舵机回到90°的位置。单片机的P3.7脚产生PWM信号以控制舵机,在该点连接示波器,仿真的时候可以看到PWM信号随着按钮的控制,脉宽增大或者减小或者恢复到1.5ms脉宽。
3 软件设计
舵机控制程序用定时中断产生PWM信号,用查询方式对三个按键做出反应。程序流程图如图5所示。单片机的P1.0脚连接的按钮控制舵机角度增加,按钮按下时,先判断是否达到了最大角度180°,如果达到了180°则重新查询各个按钮,否则舵机角度按照程序设定的幅度增加;单片机的P1.1脚连接的按钮控制舵机角度减小,按钮按下时,先判断是否达到了最小角度0°,如果达到了0°则重新查询各个按钮,否则舵机角度按照程序设定的幅度减小;单片机的P1.2脚连接的按钮控制舵机角度回到初始位置,即90°位置。
控制舵饥关键是要产生与角度相对应的PWM信号,单片机通过定时器中断产生PWM信号。定置,定义TL02和TH02用于PWM信号低电平定时初值设置。例如,舵机初始位置设在90°位置,对应的PWM信号脉宽为1.5ms,即PWM信号高电平为1.5ms,低电平为20ms-1.5ms=18.5ms。所以在程序开始部分如下设置:
程序如此设置,系统上电后则在P3.7脚产生1.5ms高电平,然后18.5ms低电平,然后不断重复,舵机则保持在90°位置。如果有按钮被按下,则舵机按照程序设置角度增加或者减小,实质上是P3.7脚按照程序设置产生了脉宽增加或者减小的PWM信号。
4 结束语
文中设计了一个基于单片机的舵机控制系统,控制方法简单方便,而且精度比较高。在此控制系统的基础上,在舵机上安装受控部件,并增加音乐播放,可做成有声有色的玩具。