多路舵机控制PWM发生器的计划与Proteus仿真

2018-05-10 10:41| 发布者: | 查看: |

单片机是当代仪器仪表、家用电器、工业仪器等范畴应用非常广泛的可编程器件之一,有着代价低廉、编程机动、体积小、可扩展性强等长处。单片机功能的飞速发展,其应用范围日益广泛,小到玩具,大到呆板人,无论从数据收罗,过程控制,含糊控制等智能体系,照旧人类的一样平常生存,都离不开单片机。但是在单片机体系的开辟过程中,假如先制作好电路板,再反复编程调试,就会给单片机体系开辟带来肯定的贫苦。而假如计划初期就将Proteus软件作为单片机体系的开辟调试仿真工具,则可以很好的办理这个题目,在Proteus上仿真通事后再制作电路板,就可以大大收缩开辟周期和研发本钱。本文以一个典范的单片机应用实例为底子,利用Proteus和Keil软件作为开辟工具,先容了单片机体系初期开辟的计划与仿真过程。

1 Proteus软件简介

Proteus软件是英国Labcenter Electronics公司开辟的EDA工具软件,已有近20年的汗青,在环球得到了广泛的应用。Proteus软件功能强盛,它集电路计划、制版及仿真等多功能于一身,不但可以或许对电工、电子技能学科涉及的电路举行计划与分析,还可以或许对微处置惩罚器举行计划和仿真,而且功能齐备,界面多彩,是比年来备受电子计划爱好者青睐的一款新型电子线路计划与仿真软件。它的电路仿真功能可以和Multisim相媲美,而独特的单片机仿真功能是Multisim以及其他任何仿真软件都不具备的,同时,它的PCB电路制版功能可以和Protel相媲美。别的,它的功能不光强盛,而且各种功能都绝不逊于同类软件,是广大电子计划爱好者难过的一个工具软件。Proteus现在支持的单片机范例有:6800系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。同时还可以支持第三方的软件编译和调试情况(如Keil等软件)。

2 舵机及其工作原理

舵机英文称Servo,也称伺服机,其特点是布局紧凑、易于安装调试、控制简朴、大扭力、本钱较低等。舵机是一种位置伺服的驱动器,重要用于各种飞行器的实行机构。其工作原理是:控制信号由吸收机的通道进入信号调试芯片,从而得到直流偏置电压。它内部有一个基准电路,可以产生周期为20 ms、宽度为1.5 ms的基准信号,假如将得到的直流偏置电压与电位器的电压相比力,即可得到电压差输出。末了,电压差的正负信号输出到电机驱动芯片,即可决定电机的正反转。当电机转速肯定时,通过级联减速齿轮动员电位器旋转,以使得电压差为0,电机制止转动。舵机可以通过连杆将转动转化为位移,再控制桨叶、油门、舵面等机构的动作,从而到达改变被控物体姿态的作用。图1所示为某型号舵机的实物图。

现实应用中,许多时间每每必要同时利用多个舵机才气到达控制的目标,比方固定翼的模子飞机至少必要3个舵机才气包管其空中姿态的稳固,而呆板人则必要更多舵机来完成其机器动作和功能。固然使用FPGA可以输出多路PWM波形,但是,FPGA管脚多,不易焊接,本钱较高,性价比不高。而使用单片机定时器输出PWM信号来控制舵机是个很好的方法,但是,单片机的定时器资源有限,这就必要通过肯定的编程本领,用一个定时器来实现多路PWM脉冲的输出,从而一次性控制多个舵机动作,以到达节流单片机资源之目标。

2.2 舵机工作原理

尺度的舵机有三条线,分别是电源线、地线和控制信号线。此中控制信号线必要输入PWM信号,以便使用占空比来控制舵机的位置。本文的PWM信号是一种周期为20 ms的脉宽调制信号,而舵机信号线的输入脉冲宽度为0.5~2.5ms的PWM信号时,其输出转角可在0°~180°间变革,输出转角和脉冲宽度的关系可简朴的表现为:

α=90(t-0.5)

式中,α为舵机输出转角;t为脉冲宽度,其界说域为0.5≤t≤2.5。由此可以看出,舵机的输出转角和脉冲宽度是一种线性关系。

3 体系计划

3.1 硬件电路计划

本体系电路可以基于单片机的最小体系计划,单片机最小体系通常包罗电源、晶振和复位电路。体系要实现对舵机输出转角的控制,必须起首产生根本的PWM周期信号,即产生20 ms的周期信号,其次要调解脉宽,即调治单片机输出PWM信号的占空比。单片性能使PWM信号的脉冲宽度实现微秒级的变革,因而具有较高的控制精度,单片机可以通过控制算法将盘算效果转化为PWM信号输出到舵机信号线上。但由于单片机体系是数字体系,其工作方式由步伐决定,而控制信号的变革完全依赖硬件计数,以是受外界干扰小,体系可靠水平高。

在用单片机驱动舵机之前,要先确定舵机的功率,然后选择充足功率的电源为舵机供电,而舵机信号控制端则只必要直接接在单片机I/O口上即可。一个多路舵机电路的计划图如图2所示。

3.2 软件计划

本体系利用的是单片机的定时器方式2,方式2又被称为8位初值主动重装定时器/计数器,THX被作为常数缓冲器,当TLX计数溢出时,在溢出标记TFX置1的同时,还会主动将THX中的常数重新装入TLX中,使TLX从初值开始重新计数,如许就制止了人为软件重装初值所带来的时间偏差,从而进步了定时器的计数精度,因此,方式2特殊适适用做对精度要求较高的脉冲信号发生器的计划。由于其计数器只有8位,故最多能装载的计数个数为28=256个,在12 MHz的晶振频率下,单次最多可计时256μs。体系软件可以基于Keil编写,proteus可直接调用Keil编译天生的.HEX(16进制)文件举行仿真,当Keil步伐修改重新编译后,Proteus不消做任何改动,直接运行便可看到修改后的步伐运行结果。

现以四路舵机控制为例来界说五个变量count,servo1,servo2,servo3,servo4。变量count用于对停止计数,servo1~4用于存储四个PWM信号的脉宽值,步伐中利用0.05 ms的定时器周期,定时器每0.05 ms产生一次停止,同时变量count加1,当count加到400时,表现20 ms时间到,count归零重新计数,在每一次重新计数开始时,单片机的全部舵机控制I/O口置高,当count加到即是servo1时,控制舵机1的I/O口置低,如许就会产生一个周期为20 ms,脉冲宽度即是servo1×0.05 ms的PWM脉冲,其他三路与之雷同。servo1~4的值可通过按键输入改变,因定时器周期为0.05 ms,故PWM可控脉宽步进值为0.05 ms,对应被控舵机的输出角度步进4.5°。假如必要更小的步进值,只需改变定时器周期和几个变量的值即可,假如必要更多路的PWM波输出,也仅需相应增长几个变量即可;假如必要更多按键来控制舵机输出转角,最好将按键接称阵列式,如许比力节流I/O口。经盘算,当必要0.05 ms的计数周期时,应将THX和TLX都写入0xCE。设4个舵机的信号端口分别为IO1~IO4,此中断步伐流程图如图3所示。

体系中的主步伐包罗定时器的设置与使能、按键检测、变量赋值等,在此不再赘述。

4 体系仿真

在Proteus中绘制好电路,同时设置好相干参数,然后运行步伐,即可直观地看到步伐实行效果,通过按键还可改变舵机的输出角度。舵机输出角度实行效果如图4所示。

通过体系中毗连的示波器可以表现多路PWM波输出效果。其PWM波形如图5所示,图中的方格横向每格代表0.2 ms,纵向每格代表5 V。从示波器仿真效果来看,输出的四路PWM波与四个舵机输出转角相对应,其波形都非常好。

5 结语

本文通过在Proteus中对电路的计划和Keil中对软件的编写,用51单片机实现了多路PWM脉冲的输出,该体系具有硬件电路简朴、软件可靠、资源节流等特点。可用于航模、呆板人等计划制作过程中的舵机控制和辅助体系调试,也可以用于其他必要多路PWM脉冲的体系。




泉源网址:http://www.robot-china.com/news/201108/26/366.html

<
>
 
QQ在线咨询
售前咨询热线
0371-56703301
售后服务热线
0371-56025727
返回顶部