步进电机都是通过脉冲信号控制的,一般都是一个用来产生一定频率脉冲的单片机(脉冲频率用来控制速度),经过信号隔离放大(达到驱动电机的电压)来驱动控制步进电机。
可以用单片机+全集成步进电机驱动芯片来整全应用,这样比较简单,控制上很方便。用普通的51单片机像AT89C2051或STC12C1052 + THB7128或THB6064这类芯片来组合就可以。单片机根据输入来决定输出的脉冲数量,让步进电机驱动芯片转化成功率信号驱动步进电机。因为是一个脉冲走一步的,所以输出的脉冲数还要考虑到细分数的问题,固定转动步数、角度的程序还是比较容易编。像1.8度的步进电机,2细分时,转一圈就需要400个脉冲,转半圈只需要200个脉冲,转90度只需要100个脉冲,如此类推。
关于程序,固定一个适当的频率,按键触发启动定时器,然后在定时中断里取反一个IO端口做脉冲输出,再放入一个累加变量做计算,算脉冲数量,是取反两次输出一个完整的脉冲,在主程序中设定一个需要的脉冲数量来作为条件控制定时器的开启和关闭,然后循环等待条件满足需求。
要注意的问题是,如果想把控制、驱动与步进电机都整合在一起,比较麻烦,小电机还好,大电机的干扰是个问题。