基于单片机的LED三文动态信息显示系统 第12页
43
为尽量提高电动机的动态性能,用信号分配及功率放大来组成步进电动机的驱动电源
[49]
。一般二相恒流斩波驱动电源与单片机及电动机接线图如图5-6所示。
说明如下:
CP:接CPU脉冲信号(正逻辑,低电平有效)。
OPTO:接CPU的+5V。
FREE:脱机,与CPU地线相接,驱动电
源不工作。
DIR:方向控制,与CPU地线相接,电动
机反转。
VCC:接直流电源正端。
GND:直流电源负端。
A:接电动机引出线的红线。
A:接电动机引出线的绿线。
B:接电动机引出线的黄线。
B:接电动机引出线的蓝线。
步进电动机一经定型,其性能取决于电动机的
驱动电源。步进电动机转速越高,力矩越大则要求
电动机的电流越大,驱动电源的电压越高。电压对
力矩影响如图5-7所示。
5.3.4细分驱动器
在步进电动机步距角不能满足使用的条件下,可采用细分驱动器来驱动步进电动机,
细分驱动器的原理是通过改变相邻(A,B)之间电流的大小来改变合成磁场的夹角,从
而能控制步进电动机的运转。
图5-6步进电机控制系统原理图
Fig5-6 Control system principle of step motor
图5-7矩频特性图三
Fig5-7 Moment frequency peculiarity
figure 3
图5-8磁场合成图
Fig5-8 Synthesis figure of magneticwww.youerw.com学位论文
44
5.4硬件电路设计
单片机等微处理器代替模拟电路作为电动机的控制器是当今的发展趋势,其有如下特
点[50]:
(1)使电路更简单
模拟电路为了实现控制逻辑,需要许多电子元件,使电路变得很复杂。采用微处理器
后,绝大多数控制逻辑可以通过软件实现。
(2)可以实现较复杂的控制
微处理器具有更强的逻辑功能,运算速度快、精度高、有大容量的存储单元,因此有
能力实现复杂的控制,如优化控制等。
(3)灵活性和适用性
微处理器的控制方式是由软件完成的,如果需要修改控制规律,一般不必要改变系统
的硬件电路,只需要修改程序即可。在系统调试和升级时,可以不断的尝试选择最优参数,
非常方便。
(4)无零点漂移,控制精度高
数字控制不会出现模拟电路中经常遇到的零点漂移问题,无论被控量的大或小,都可
以保证足够的控制精度。
(5)可提供人机界面,多机联网工作
现在普遍采用单片机作为电动机的控制器。实际上可作为电动机的控制器的元件还有
很多,例如工业控制计算机、可编程控制器(PLC)、数字信号处理器(DSP)。工业控制
计算机功能最强大,它有极高的处理速度和强大的运算能力和接口功能,但由于成本高,
体积大,所以只能用于大型系统。可编程控制器(PLC)刚好相反,它只能完成逻辑判断、
定时、计数和简单的运算。由于功能太弱,所以只能用于简单的电动机控制。单片机刚好
介于二者之间,它有较强的控制功能、低
廉的成本。人们在选择电动机控制器时,
常常是在先满足功能的需要的同时,优先
选择成本低的控制器。因此单片机往往成
为优先选择的目标[51]。
单片机对于步进电动机的控制,由于
采用的是四相步进电动机,所以共有优根
接线,如图5-9所示。
其中白线和黑线是连接+12V电源的,其余四根线是接收脉冲信号的。对于ULN2003,
一共有7个相同的达林顿管,这里只用其中的4个做驱动,可以把步进电动机的红、黄、
绿、蓝四根线连到ULN2003的OUT1~4四个口,既18、17、16、15四个管脚。ULN2003
的对应IN1~4四个端口连接到AT89C51的P1口的任意四个
[41]
。简单来说,就是通过P1
图5-9步进电动机接线原理图
Fig5-9 Connection principle figure of step motor5步进电动机的系统设计
45
口的4个口发送脉冲来控制步进电动机的转速和转向,只是发出的脉冲信号太弱,不足以
驱动电动机,中间加了一级放大而已。由于ULN2003本质就是两个串联的三极管,它的
放大倍数是一定的,可能对于电流较大的电动机驱动不了,在AT89C51和ULN2003中间
还要在加一级驱动7406或7407都行。在连接步进电动机时,还要在每个绕组上都要并联
一个二极管来和步进电动机的每个绕组组成一个放电回路来保护电动机。当选用较大的电
压二极管4004或以上的型号时还可再加一个保护电阻。
5.5软件部分的实现
为了编程和调试的方便,把程序分为主程序和初始化子程序initial,延时子程序delay
及步进电动机子程序motor。由于是四相步进电动机,根据前面的介绍主要有四种,如下
表5-1所示。
Table5-1 Assort of four-phase step motor
表5-1四相步进电动机的分类
单四拍A-B-C-D
双四拍AB-BC-CD-DA
单双八拍AB-B-BC-C-CD-D-DA-A
双八拍AB-ABC-BC-BCD-CD-CDA-DA-DAB
为了实现对各绕组按一定的方式轮流加电,需要一个脉冲循环分配器。循环分配器可
用硬件电路来实现,也可用软件来实现。出于设计成本经济化的考虑,采用软件来设计脉
冲循环分配器。软件来设计脉冲循环分配器又有两种方法:控制字法和循环查表法。循环
查表法是比较普遍的一种,它是将各相绕组加电顺序的控制码制成一张表,即步进电动机
相序表,存放在内存区,再设置一个地址指针。当地址指针依次加1(或减1)时,即可
从表中取出加电的代码,然后输出到步进电动机,产生按一定运行方式的走步操作。若改
变相序表内的加电代码和地址指针的指向,则可改变步进电动机的运行方式与方向[52]。
由于只是处于试验阶段,所以就用循环查表法编写了一个简单的单四拍的相序表,如下表
5-2所示。
Table5-2 Time sequence of four-phase step motor
表5-2四相步进电动机相序
P1.3 P1.2 P1.1 P1.0
0 0 0 1 A
0 0 1 0 B
0 1 0 0 C
1 0 0 0 Dwww.youerw.com学位论文
46
本方法没有用到指针,只是分别编写正转和反转两段程序,由主函数送给步进电机子
程序电动机的转向和转速,然后在电动机子程序内有计算公式来算出所需要的脉冲数和每
个脉冲之间的延时[53]。程序如下:
/*motor为步进电动机子程序*/
void motor(uchar j,uchar rate)/*单四拍*/
{
uint step;/*脉冲数*/
uint time;/*延时数*/
step=200*rate;
time=300/rate;/*ms*/
if(j!=0)/*正转*/
while(step)
{/*A-B-C-D*/
P1_3=0;P1_0=1;
delay(time);
P1_0=0;P1_1=1;
delay(time);
P1_1=0;P1_2=1;
delay(time);
P1_2=0;P1_3=1;
delay(time-1);
step--;
}
else/*反转*/
while(step)
{/*D-C-B-A*/
P1_0=0;P1_3=1;
delay(time);
P1_3=0;P1_2=1;
delay(time);
P1_2=0;P1_1=1;
delay(time);
P1_1=0;P1_0=1;
delay(time-1);
step--;}}
<< 上一页 [11] [12] [13] [14] [15] 下一页
基于单片机的LED三文动态信息显示系统 第12页下载如图片无法显示或论文不完整,请联系qq752018766