PWM波控制舵机原理

上传人:汽*** 文档编号:475414041 上传时间:2024-02-19 格式:DOCX 页数:9 大小:123KB
返回 下载 相关 举报
PWM波控制舵机原理_第1页
第1页 / 共9页
PWM波控制舵机原理_第2页
第2页 / 共9页
PWM波控制舵机原理_第3页
第3页 / 共9页
PWM波控制舵机原理_第4页
第4页 / 共9页
PWM波控制舵机原理_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《PWM波控制舵机原理》由会员分享,可在线阅读,更多相关《PWM波控制舵机原理(9页珍藏版)》请在金锄头文库上搜索。

1、2标准舵机舵机工作原理乘胜三模商城/ 2009-04-18掃礁的舵机育3冬导纯*分别足电谆纯、地嫂、控闾枝.如啊2两示令為源线咯地线GND控制线以日本FUT胡何3甜花机为例*图1色H1呐甜-S3DO3型筋机时内部电怖图】FUTABA - S3003型航机的内部电路3凹3HOL的匸作原理足;mi倍弓由接收讷道进入佶号辭澗电斟(B前日裁的圧髀迸f亍辭期 孫得一牛岚汎 偏邂巫压。电用与电观豁的电乐比较,茯禅电乐羞由BA66S8J该辎出送入赳机隔动集成业貉EAL阴冊*以瓏功业机止反转当业机转对时.通过缎联减速齿轮带剤电世器眈1庭转.血到电 濡盖均山 电机停止转幼舵机的控制信号是PWM信号,利用占空比的

2、变化,改变舵机的位置。有个很有趣的技术话题可以稍微提一下,就是BA6688是有EMF控制的, 主要用途是控制在高速时候电机最大转速。原理是这样的:收到1个脉冲以后,BA6688内部也产生1个以5K电位器实际电压为基准的脉冲,2个脉冲比较以后展宽,输出给驱动使用。当输出足够时候,马达就 开始加速,马达就能产生EMF,这个和转速成正比的。因为取的是中心电压,所以正常不能检测到的,但是运行以后就电平发生倾 斜,就能检测出来。超过EMF判断电压时候就减小展宽,甚至关闭,让马达减 速或者停车。这样的好处是可以避免过冲现象(就是到了定位点还继续走,然后回 头,再靠近)。一些国产便宜舵机用的便宜的芯片,就没

3、有EMF控制,马达、齿轮的机械 惯性就容易发生过冲现象,产生抖舵电源线和地线用于提供舵机内部的直流电机 和控制线路所需的能源.电压通常介于46V, 般取5V。注意,给舵机供电 电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信 号,方波脉冲信号的周期为20ms(即频率为50 Hz)。当方波的脉冲宽度改变时, 舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。某型舵机的输出 轴转角与输入信号的脉冲宽度之间的关系可用图3来表示。舵机输出轴转箱图3擁机输出转角与输入信号脉冲宽度的关系标准的微型伺服马达有三条控制线,分别为:电源、地及控制。电源线与地线用于提供内部的直流马达及控

4、制线路所需的能源,电压通常介于4V-6V之间, 该电源应尽可能与处理系统的电源隔离(因为伺服马达会产生噪音)。甚至小伺 服马达在重负载时也会拉低放大器的电压,所以整个系统的电源供应的比例必须 合理。控制线输入一个周期性的正向脉冲信号,这个周期性脉冲信号的高电平时间 通常在lms-2ms之间。而低电平时间应在5ms到20ms间,并不很严格。下表 表示出一个典型的20ms周期性脉冲的正脉冲宽度与微型伺服马达的输出臂位 置的关系:PffiJCXCKTFQ) FBI (T1) FBI (A1MMHT2)Pfrs商PAQ(ADCa)PJd (ADC9JPA3(ADC3J应 OCRPA5(ADC6)PA7

5、(ALX;?|PDOCKXD)PO)CSCLPDJ CTXDPCI腕肋JDHIKTO)PCf (TCK)TO3(WnjPCI (THS)PTMCQCL 罚PC4 (TOO)FOSCOCUJKJ (TDDPWQOOKtiCTWCL)peicroffisjREEETvccAVC-CREEFZTALZGNDSTiLlGND.Y pi 总1J*5-|舵机工作原理1、概述舵机最早出现在航模运动中。在航空模型中,飞行机的飞行姿态是通过调节 发动机和各个控制舵面来实现的。举个简单的四通飞机来说,飞机上有以下几个地方需要控制:1发动机进气量,来控制发动机的拉力(或推力);2副翼舵面(安装在飞机机翼后缘),用来

6、控制飞机的横滚运动;3水平尾舵面,用来控制飞机的俯仰角;4垂直尾舵面,用来控制飞机的偏航角;遥控器有四个通道,分别对应四个 舵机,而舵机又通过连杆等传动元件带动舵面的转动,从而改变飞机的运动状态。 舵机因此得名:控制舵面的伺服电机。不仅在航模飞机中,在其他的模型运动中都可以看到它的应用:船模上用来 控制尾舵,车模中用来转向等等。由此可见,凡是需要操作性动作时都可以用舵 机来实现。2、结构和控制一般来讲,舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈 电位计5k、直流电机、控制电路板等。工作原理:控制电路板接受来自信号线的控制信号(具体信号待会再讲), 控制电机转动,电机带动一系列齿轮组

7、,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈 电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板 根据所在位置决定电机的转动方向和速度,从而达到目标停止。舵机的基本结构是这样,但实现起来有很多种。例如电机就有有刷和无刷之 分,齿轮有塑料和金属之分,输出轴有滑动和滚动之分,壳体有塑料和铝合金之 分,速度有快速和慢速之分,体积有大中小三种之分等等,组合不同,价格也千 差万别。例如,其中小舵机一般称作微舵,同种材料的条件下是中型的一倍多, 金属齿轮是塑料齿轮的一倍多。需要根据需要选用不同类型。舵机的输入线共有三条,红色中间,是电源线,

8、一边黑色的是地线,这辆根 线给舵机提供最基本的能源保证,主要是电机的转动消耗。电源有两种规格,一 是4.8V, 是6.0V,分别对应不同的转矩标准,即输出力矩不同,6.0V对应 的要大一些,具体看应用条件;另外一根线是控制信号线,Futaba的一般为白 色, JR的一般为桔黄色。另外要注意一点,SANWA的某些型号的舵机引线电源 线在边上而不是中间,需要辨认。但记住红色为电源,黑色为地线,一般不会搞 错。舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从 0.5ms-2.5ms,相对应舵盘的位置为0180度,呈线性变化。也就是说,给它 提供一定的脉宽,它的输出轴就会保持在一

9、个相对应的角度上,无论外界转矩怎 样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对 应的位置上。舵机内部有一个基准电路,产生周期20ms,宽度1.5ms的基准信 号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产 生电机的转动信号。由此可见,舵机是一种位置伺服的驱动器,转动范围不能超过 180 度,适 用于那些需要角度不断变化并可以保持的驱动当中。比方说机器人的关节、飞机 的舵面等。常见的舵机厂家有:日本的 Futaba、JR、SANWA 等,国产的有北京 的新幻想、吉林的振华等。现举 FutabaS3003 来介绍相关参数,以供大家设计 时选用。之所

10、以用 3003 是因为这个型号是市场上最常见的,也是价格相对较便 宜的一种(以下数据摘自 Futaba 产品手册)。尺 寸(Dimensions): 40.4X19.8X36.0 mm重量(Weigh t):37.2 g工作速度(Operating speed): 0.23 sec/60 (4.8V) 0.19 sec/60 (6.0V) 输出力矩(Output torque):3.2 kg.cm (4.8V) 4.1 kg.cm (6.0V)由此可见,舵机具有以下一些特点:体积紧凑,便于安装; 输出力矩大,稳定性好; 控制简单,便于和数字系统接口; 正是因为舵机有很多优点,所以,现在不仅仅应

11、用在航模运动中,已经扩展 到各种机电产品中来,在机器人控制中应用也越来越广泛。3、用单片机来控制 正是舵机的控制信号是一个脉宽调制信号,所以很方便和数字系统进行接 口。只要能产生标准的控制信号的数字设备都可以用来控制舵机,比方PLC、单 片机等。这里介绍利用 51 系列单片机产生舵机的控制信号来进行控制的方法, 编程语言为C51。之所以介绍这种方法只是因为笔者用2051实现过,本着负责 的态度,所以敢在这里写出来。程序用的是我的四足步行机器人,有删改。单片 机并不是控制舵机的最好的方法,希望在此能起到抛砖引玉的作用。2051 有两个 16 位的内部计数器,我们就用它来产生周期 20ms 的脉冲

12、信 号,根据需要,改变输出脉宽。基本思路如下(请对照下面的程序):我用的晶 振频率为12M,2051 一个时钟周期为12个晶振周期,正好是1/1000 ms,计 数器每隔 1/1000ms 计一次数。以计数器 1 为例,先设定脉宽的初始值,程序 中初始为1.5ms,在for循环中可以随时通过改变a值来改变,然后设定计数 器计数初始值为a,并置输出p12为高位。当计数结束时,触发计数器溢出中 断函数,就是 void timer0(void)interrupt 1 using1 ,在子函数中,改变输 出 p12 为反相(此时跳为低位),在用 20000(代表 20ms 周期)减去高位用的 时间a,

13、就是本周期中低位的时间,c=20000-a,并设定此时的计数器初值为c, 直到定时器再次产生溢出中断,重复上一过程。# include #define uchar unsigned char#define uint unsigned intuint a,b,c,d;/*a为舵机1的脉冲宽度,b为舵机2的脉冲宽度,单位1/1000 ms */ /*c、d为中间变量*/*以下定义输出管脚*/sbit p12二P2;sbi t p13二p3;sbit p37二P3“7;/*以下两个函数为定时器中断函数*/*定时器1,控制舵机1,输出引脚为P12,可自定义*/void timer0(void) int

14、errupt 1 using 1p12=!p12; /*输出取反*/c=20000-c; /*20000代表20 ms,为一个周期的时间*/TH0=-(c/256); TL0=-(c%256); /*重新定义计数初值*/ if(c=500&c=500&d=2500)d=b;else d=20000-b;/*主程序*/void main(void)TMOD=0x11; /*设初值*/p12=1; p13=1;a=1500;b=1500; /*数值1500即对应1.5ms,为舵机的中间90度的位置*/ c=a;d=b;TH0=-(a/256); TL0=-(a%256);TH1=-(b/256);

15、 TL1=-(b%256); /*设定定时器初始计数值*/EA=1;ET0=1; TR0=1;EX0=1;EX1=1;ET1=1; TR1=1;PX0=0;PX1=0;PT1=1;PT0=1;/ *设定中断优先级*/for(;)/*在这个for循环中,可以根据程序需要在任何时间改变 a、b 值来改变脉宽的输 出时间,从而控制舵机*/因为在脉冲信号的输出是靠定时器的溢出中断函数来处理,时间很短,因此 在精度要求不高的场合可以忽略。因此如果忽略中断时间,从另一个角度来讲就 是主程序和脉冲输出是并行的,因此,只需要在主程序中按你的要求改变a值, 例如让a从500变化到2500,就可以让舵机从0度变化到180度。另外要 记住一

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

当前位置:首页 > 建筑/环境 > 建筑资料

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