舵机在航模、车模等模型上被广泛使用,舵机可以通过联轴器、连杆等辅助件完成精确的角度控制。本例中使用的舵机型号为HG14-M,舵机的实物和运动协议如图11-18所示。
图11-18 舵机的实物和运动协议
这种舵机的核心器件是直流电动机和减速器。对舵机转角的控制是通过可变占空比的(PWM)信号控制实现的。舵机运动时可以外接较大的转动负载,输出转矩较大,而且抗抖动性很好,电位器的线性度较高,达到极限位置时也不会偏离目标。在本节中将给出舵机角度控制的实例,并结合Proteus进行仿真。
1.HG14-M舵机的位置控制方法
舵机的转角可达到185°,由于采用8位CPU控制,所以控制精度最大为256份。目前经过实际测试和规划,分了250份。将0~185°分为250份,每份0.74°,即舵机的控制精度为0.74°。
控制所需的PWM宽度为0.5~2.5ms,宽度2ms。2ms÷250=8μs,即PWM的控制精度为8μs。
舵机的转角为185°,分为250个位置,每个位置称为1DIV,250DIV=2ms。N为整数,则有图11-19。
2.单舵机调速测试
PWM波形如图11-20所示。
(1)测试内容
1)将后部下降沿的时间拉至30ms没有问题,舵机照样工作。
2)将后部下降沿的时间拉至10ms没有问题,舵机照样工作。
3)将后部下降沿的时间拉至2.6ms没有问题,舵机照样工作。
4)将后部下降沿的时间拉至500μs没有问题,舵机照样工作。
(2)测试结果 实践检验出下降沿时间参数可以做得很小,目前实验降至500μs,依然工作正常。其原因如下。
1)舵机电路自动检测上升沿,遇上升沿就触发,以此监测PWM脉宽“头”。
2)舵机电路自动检测下降沿,遇下降沿就触发,以此监测PWM脉宽“尾”。
3.舵机联动单周期PWM指令算法
图11-19 舵机的转角
图11-20 PWM波形
(1)控制要求 要求同时发给8个舵机位置目标值,该指令的执行周期尽量短。
从P0.0、P1.0到P2.024个接口,单DIV循环的最小时间只有8μs,所以串行运算是不行的,那么就采用并行运算。目前采用的并行算法是P0.0~P0.7为一个基本单位。
实际案例:P1接口的8个位置各不相同,见表11-6。
表11-6 P1接口的8个位置
注意:N为整数,依照表11-6看出,由于整数原因,定位不能实现的有45°、60°等。
(2)8路PWM信号发生算法解析 预计将整个周期控制在3.5~5ms内;P1接口对应的时间如图11-21所示,P1接口的8个接口在不同时间产生下降沿。由表11-6可知:P1.5接口的N为125,那么就需要在125个DIV后产生下降沿,时间为(125×8μs=1000μs)。
其中有2个关键参数:①时间参数N=125;②逻辑参数P1.5=#0DFH。
逻辑参数的定义如下,采用&指令,操作P1接口,见表11-7。
图11-21 P1接口对应的时间
表11-7 P1接口逻辑参数表
具体的程序操作如下:
1)开3.5ms定时中断。
2)取出8个接口(P1.0~P1.7)的位置值,也就是8个N值,并赋予相应的接口逻辑参数。
3)将这8个值由大到小排列,相应接口的逻辑参数值也随着N的顺序排列,一一对应。(www.xing528.com)
4)将N值做减法,求得:
M1=N1
M2=N2-N1
M3=N3-N2
M4=N4-N3
M5=N5-N4
M6=N6-N5
M7=N7-N6
M8=N8-N7
5)取出M1,延时M1×DIV,&相应的逻辑参数;
取出M2,延时M2×DIV,&相应的逻辑参数;
取出M3,延时M3×DIV,&相应的逻辑参数;
取出M4,延时M4×DIV,&相应的逻辑参数;
取出M5,延时M5×DIV,&相应的逻辑参数;
取出M6,延时M6×DIV,&相应的逻辑参数;
取出M7,延时M7×DIV,&相应的逻辑参数;
取出M8,延时M8×DIV,&相应的逻辑参数;
6)8个接口的下降沿全部产生完毕,等待一定的Tw值,或等待3.5ms中断的到来。
7)中断到来后,清理中断标志,然后结束该程序。
注意:在进行逐个排序延时的过程中,CPU要取出M1、M2、M3…M8,那么会有1个取数指令周期,当CPU采用12MHz时,取数指令周期为1μs。最终应该在第8个延时,即M8时扣除掉,具体指令参见指令集。
4.应用电路
由于舵机内部采用集成电路,一般情况下可由单片机接口直接控制。如有特殊要求可采用光耦隔离的方法控制,此时应选择高速光耦。舵机控制电路如图11-22所示。电路中R、L、C三个按钮的功能分别为顺时针转动逆时针转动和回中位。
图11-22 舵机控制电路
5.程序设计
(1)程序功能 主程序循环采集功能键状态,进而控制舵机的转动。
注意:在仿真时Proteus中只有一种舵机模型,双击舵机图标会出现属性对话框,根据舵机参数在其中主要设置最小控制脉冲时间(Minimun Control Pulse)和最大控制脉冲时间(Maximun Control Pulse)即可。如图11-23所示。
(2)程序流程图 舵机控制流程如图11-24所示。
(3)参考程序
图11-23 舵机仿真设置
图11-24 舵机控制流程图
汇编参考程序:
;通过按键,改变单片机输出脉冲宽度,使舵机在-90°~+90°间转动。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。