最近在准备电赛做往年的题目,遇到了使用步进电机作为执行器的题目,步进电机有固定的步距角,所以每圈有固定的步数,比如我现在使用的步进电机的步距角为1.8度,所以说转一圈需要走200步,我使用的步进电机驱动器可以进行16细分,这样每转一圈就需要3200步。而这个驱动器使用脉冲来进行控制,每收到一个脉冲就会走一步,所以如果可以每次精确的控制输出的脉冲数,那么在不失步的情况下可以精确控制步进电机转过的角度。
关于脉冲输出的控制我查阅网上资料后发现有五种方法
1、单脉冲法,需要一个脉冲中断一次,中断次数多,影响效率
2、一个定时器输出PWM,另一定时器进行中断计数,与方法1一样,同样需要频繁的中断
3、用主从定时器门控方式,比较繁琐
4、用一个定时器(从)作为另一个定时器(主)的外部时钟触发源
5、高级定时器T1、T8的重复计数方式,RCR计数中断,看手册好像这种方式最简单,能满足一部分人要求,缺点是寄存器只有8位,最多实现255个脉冲计数输出。
这里我使用了第四个方法。
|