一、步进电机的工作原理
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
二、设计方案
本设计采用51单片机AT89C51(晶振频率为12MHZ)对四相六线制步进电机(内阻33欧,步进1.8度,额定电压12V)进行控制。通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。ULN2003 是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管组成。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。通过ULN2003构成步进电机的驱动电路,电路图如图1所示。51的25-28口接ULN2003的1-4输入端。另外,用键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为2位单个数码管的显示驱动。74LS164带锁存,使用串行接法可以节约I/O口资源。其电路图如图2所示。通过51的TXD和RXD口对CLK和DATA发送数据。


三、预期目标
将图1图2连接起来,使之实现:按下启动键,电机旋转,按下加1键,速度增加,按下减1键,速度降低,最高速度为100转/分,最低速度为25转/分,按下停止键,电机停转。速度值在数码管上显示出来。 综合以上选取的方案,总的流程如图3所示。

结束语
设计的步进电机基本能实现预期目标,经过调试和修改,但还是存在问题,比如按开关的时候会出现不稳定情况,转速有时比较乱,显示有时也有些不理想,后面的工作就是在软件和硬件等方面进行修改,以完全达到预期目标。