【2017年整理】舵机的工作原理

上传人:豆浆 文档编号:1010798 上传时间:2017-05-25 格式:DOC 页数:4 大小:29.50KB
返回 下载 相关 举报
【2017年整理】舵机的工作原理_第1页
第1页 / 共4页
【2017年整理】舵机的工作原理_第2页
第2页 / 共4页
【2017年整理】舵机的工作原理_第3页
第3页 / 共4页
【2017年整理】舵机的工作原理_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《【2017年整理】舵机的工作原理》由会员分享,可在线阅读,更多相关《【2017年整理】舵机的工作原理(4页珍藏版)》请在金锄头文库上搜索。

1、基于 AT89C2051 单片机的多路舵机控制器设计摘要 舵机是机器人、机电系统和航模的重要执行机构。舵机控制器为舵机提供必要的能源和控制信号。本文提出一种以外部中断计数为基础的 PWM 波形实现方法。该方法具有简单方便,成本低,可实现多路独立 PWM 输出的优点。关键词 AT89C205l 舵机控制器 外部中断 PWM 舵机是一种位置伺服的驱动器。它接收一定的控制信号,输出一定的角度,适用于那些需要角度不断变化并可以保持的控制系统。在微机电系统和航模中,它是一个基本的输出执行机构。1 舵机的工作原理以日本 FUTABA-S3003 型舵机为例,图 1 是 FUFABA-S3003 型舵机的内

2、部电路。舵机的工作原理是:PWM 信号由接收通道进入信号解调电路 BA66881。的 12 脚进行解调,获得一个直流偏置电压。该直流偏置电压与电位器的电压比较,获得电压差由BA6688 的 3 脚输出。该输出送人电机驱动集成电路 BA6686,以驱动电机正反转。当电机转速一定时,通过级联减速齿轮带动电位器 R。 ,旋转,直到电压差为 O,电机停止转动。舵机的控制信号是 PWM 信号,利用占空比的变化改变舵机的位置。2 舵机的控制方法标准的舵机有 3 条导线,分别是:电源线、地线、控制线,如图 2 所示。电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源电压通常介于46V,一般取 5V。

3、注意,给舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为 20 ms(即频率为 50 Hz)。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用围 3 来表示。3 舵机控制器的设计(1)舵机控制器硬件电路设计从上述舵机转角的控制方法可看出,舵机的控制信号实质是一个可嗣宽度的方波信号(PWM)。该方波信号可由 FPGA、模拟电路或单片机来产生。采用 FPGA 成本较高,用模拟电路来实现则电路较复杂,不适合作多路输出。一般采用单片机作舵机的控制器。目前采用单片机做

4、舵机控制器的方案比较多,可以利用单片机的定时器中断实现 PWM。该方案将 20ms 的周期信号分为两次定时中断来完成:一次定时实现高电平定时 Th;一次定时实现低电平定时 T1。Th、T1 的时间值随脉冲宽度的变换而变化,但,Th+T1=20ms 。该方法的优点是,PWM 信号完全由单片机内部定时器的中断来实现,不需要添加外围硬件。缺点是一个周期中的 PWM 信号要分两次中断来完成,两次中断的定时值计算较麻烦;为了满足 20ms 的周期,单片机晶振的频率要降低;不能实现多路输出。也可以采用单片机+8253 计数器的实现方案。该方案由单片机产生计数脉冲(或外部电路产生计数脉冲) 提供给8253

5、进行计数,由单片机给出 8253 的计数比较值来改变输出脉宽。该方案的优点是可以实现多路输出,软件设计较简单;缺点是要添加 l 片 8253 计数器,增加了硬件成本。本文在综合上述两个单片机舵机控制方案基础上,提出了一个新的设计方案,如图 4 所示。该方案的舵机控制器以 AT89C2051 单片机为核心,555 构成的振荡器作为定时基准,单片机通过对 555 振荡器产生的脉冲信号进行计数来产生 PWM 信号。该控制器中单片机可以产生 8 个通道的 PWM 信号,分别由 AT89C2051 的 P10Pl.7(1219 引脚)端口输出。输出的 8 路 PWM 信号通过光耦隔离传送到下一级电路中。

6、因为信号通过光耦传送过程中进行了反相,因此从光耦出来的信号必须再经过反相器进行反相。方波信号经过光耦传输后,前沿和后沿会发生畸变,因此反相器采用 CD40106 施密特反相器对光耦传输过来的信号进行整形,产生标准的 PWM 方波信号。笔者在实验过程中发现,舵机在运行过程中要从电源吸纳较大的电流,若舵机与单片机控制器共用一个电源,则舵机会对单片机产生较大的干扰。因此,舵机与单片机控制器采用两个电源供电,两者不共地,通过光耦来隔离,并且给舵机供电的电源最好采用输出功率较大的开关电源。该舵机控制器占用单片机的个 SCI 串口。串口用于接收上位机传送过来的控制命令,以调节每一个通道输出信号的脉冲宽度。

7、MAX232 为电平转换器,将上位机的 RS232 电平转换成 TTL 电平。(2)实现多路 PWM 信号的原理在模拟电路中,PWM 脉冲信号可以通过直流电平与锯齿波信号比较来得到。在单片机中,锯齿波可以通过对整型变量加 1 操作来实现,如图 5 所示。假定单片机程序中设置一整型变量 SawVal,其值变化范围为 ON。555 振荡电路产生的外部计数时钟信号输入到 AT89C2051 的 INTO 脚。每当在外部计数时钟脉冲的下降沿,单片机产生外部中断,执行外部中断 INT0 的中断服务程序。每产生一次外部中断,对 SawVal 执行一次加 1 操作,若 SawVal 已达到最大值 N,则对

8、SawVal 清 O。SawVal 值的变化规律相当于锯齿波,如图 5 所示。若在单片机程序中设置另一整型变量 DutyVal,其值的变化范围为 ON 。每当在 SawVal 清 0 时,DulyVal 从上位机发送的控制命令中读入脉冲宽度系数值,例如为H(0H N) 。若 DutyValSawVal,则对应端口输出高电平;若 DutyValSawval,则对应端口输出低电平。从图 5 中可看出,若改变 DutyVal 的值,则对应端口输出脉冲的宽度发生变化,但输出脉冲的频率不变,此即为 PWM 波形。设外部计数时钟周期为 TINT0,锯齿波周期(PWM 脉冲周期)为 TPWM,PWM 脉冲宽

9、度占空比为 D,由图 5 可得出如下关系:由式(3)可知,PWM 波形的周期 TPWM 一旦确定下来,只须选定计数最大值 N,就可以确定外部时钟脉冲所需周期(频率) 。外部时钟脉冲周期 TINT0 显然是 PWM 脉冲宽度变换的最小步距,即调节精度。由式(4)可知,N 越大,步距所占 PWM 周期的百分比越小,精度越高。例如,若采用 8 位整型变量,最大值 N=28-1=255,则精度为 1(255+1)=1255;若采用 16 位整型变量,最大值 N=216-1=65535,则精度为 165536。文中计数变量 SawVal 采用 8 位整型变量,因此 N=255。对于一般应用,其精度已足够

10、。就舵机而言,要求 TPWM=20ms,则可算得外部时钟周期为: 因此,设计 555 振荡电路时,其输出脉冲的频率应为: 当有多个变量与 SawVal 比较,将比较结果输出到多个端口时。就形成了多路 PWM波形。各个变量的值可以独立变化,因此各路 PWM 波形的占空比也可以独立调节,互不相干。多路 PWM 波形的产生如图 6 所示。图中以 3 路 PWM 波形为例。4 舵机控制器软件的设计舵机控制器的控制核心为单片机 AT89C2051。文中,程序用 C5l 编写,工作方式为前后台工作方式。单片机程序包括系统初始化程序、串口通信程序、上位机命令解释与PWM 脉宽生成程序和多路 PWM 波形输出

11、程序。串行通信程序和多路 PWM 波形输出程序采用中断方式。串口通信格式为渡特率 9600bps、8 位数据位、1 位停止位、无校验、ASCII 码字符通信。串口通信程序用于接收上位机发送过来的控制命令。控制命令采用自定义文本协议,即协议内容全部为 ASCII 码字符。通信协议格式如图 7 所示。例如,要控制通道 1 的 PWM 脉宽,脉宽系数为 25,则通信协议内容为“#” “1”“0”“2”“5”“!”这 6 个字符。这时通道 l 的 PWM 占空比为 25256=O098。一个通道号对应一个 PWM 脉冲输出端口。本设计为 8 个通道,号码为 l8,对应单片机的P1oP17。起始符和终止

12、符起到帧同步的作用。串口通信程序流程如图 8 所示。图 8 中,CHNo 存放的是 PWM 通道号 ASCII 码,Dutyl00、DutylO、Duoyl 分别存放的是脉宽系数的百位数、十位数和个位数的 ASCII 码(注意,若高位数为 O,则该位的字符应为“0” ,不能省略。如 25,完整字符应为“O ”“2”“5”。CharNo 为信号量,用于对串口接收的字符顺序以及串口中断与上位机命令解释程序之间进行同步。5 舵机控制器实验图 9 为舵机控制板输出的其中一路 PWM 波形(带舵机负载) 。从图 9 中可看出,舵机控制器输出的 PWM 波形稳定、干净,符合设计要求。6 结论本文提出的多路

13、舵机控制器设计方法,以单片机 AT89C2051 为核心,由外部振荡电路提供 PWM 脉冲的定时基准,控制部分与舵机驱动部分由两个电源供电,两者电气隔离。这种设计方案的优点是:PWM 波形由外部振荡电路提供定时基准,与单片机内部振荡器的频率无关,不影响串口通信、定时器等参数的配置。PWM 波形的调整精度可任意确定。本没计思路可应用于任意多路的 PWM 输出,只要单片机能提供足够多的输出端口,例如将 AT89C2051 换成 AT89S5l,就可以提供至少 24 路的 PWM 输出(P0、Pl 、P2)。控制参数由 SCI 串口输入,适应面广,上位机可以是 PC 机、单片机或是 PLC。本方法具有一般性,任何单片机只要能提供 SCI 中断、外部中断就可以应用本方法。专家进!怎样用单片机控制舵机 (满意+100 分)悬赏分:200 - 解决时间:2009-8-23 14:59 求控制 MG995 舵机的脉冲宽度 如何用波来控制舵机的转动角度 程序我们可以自己搞定 问题补充:可以留个 QQ 日后好联系提问者: linrui19900105 - 四级最佳答案请看图 ,图上标注了角度和脉冲两个参数,你仔细看,每个脉冲宽度对应一个角度,你只要写程序,用单片机给舵机发送图上任意一个有效的固定宽度的脉冲,那么舵机就转到这个脉冲对应的角度上了。 3回答者: 西蜀

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号