找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3976|回复: 1
打印 上一主题 下一主题
收起左侧

基于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 结束语
    文中设计了一个基于单片机的舵机控制系统,控制方法简单方便,而且精度比较高。在此控制系统的基础上,在舵机上安装受控部件,并增加音乐播放,可做成有声有色的玩具


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:326699 发表于 2018-5-14 16:04 | 只看该作者
请问电机是按照某个角度自动做往复运动吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表