图7.31 舵机控制信号
单片机实现舵机转角控制
可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。5mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。
单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。
当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。
具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。
为保证软件在定时中断里采集其他信号,并且使发生PWM信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20ms。软件流程如图7.32所示。
7.4 步进电机单片机控制
7.4.1 步进电机控制系统组成 如图 7.4
图 7.4
与传统步进控制器相比较有以下优点:
1)用微型机代替了步进控制器把并行二进制码转换成串行脉冲序列,并实现方向控制。
2)只要负载是在步进电机允许的范围之内,每个脉冲将使电机转动一个固定的步距角度。
3)根据步距角的大小及实际走的步数,只要知道初始位置,便可知道步进电机的最终位置。
7.42 步进电机控制系统原理
(1) 脉冲序列的生成
图7.42
脉冲幅值:由数字元件电平决定。
TTL 0 ~ 5V
CMOS 0 ~ 10V
接通和断开时间可用延时的办法控制。以达
到确保步进到位。
7.43方向控制
步进电机旋转方向与内部绕组的通电顺序相关。 三相751拍,通电顺序为:
正转:A→AB→B→BC→C→CA
反转:A→AC→C→CB→B→BA
改变通电顺序可以改变步进电机的转向
(2)脉冲分配
实现脉冲分配(也就是通电换相控制)的方法有两种,软件法和硬件法。
软件法:在电动机运行过程中,要不停地产生控制脉冲,占用了大量的CPU时间,可能使单 带机械臂的四轮足复合式机器人+CAD图纸(6):http://www.751com.cn/zidonghua/lunwen_1187.html