本文将从一个嵌软开发初学者的角度来介绍学习步进电机驱动的相关知识。
先大致说一下步进电机的驱动原理:步进电机通过线圈绕组通电后产生的磁极与中间转子的磁极进行相互作用,从而让中间的转子进行转动。以图1为例,A+/A-为一组线圈,B+/B-两个为一组线圈,步进电机会给线圈依次通电,从而使产生的磁场不断变化,从而使得转子转动。
接下来介绍一些相关概念:
图1
齿距角:假设步进电机有50个齿轮,则其齿距角为360/50 = 7.2°。
图2
步距角:即步进电机走一步,其所转的角度。例如:1-2相驱动,50齿的步进电机的步距角即为0.9°。首先对于50齿的步进电机来说,一个正弦波其会转动一个齿距角,而1-2相驱动为A->AB->B->BC->C->CD->D->DA的通电方式,这样一个完整的通电顺序将一个正弦波分为了8个脉冲,其中每次脉冲使得电机转动的角度即为步距角。步距角=齿距角/细分数
细分模式:在通过驱动芯片来驱动步进电机时,通常会有一个寄存器用于我们设置具体的细分模式,如上述提到的1-2相驱动方式就是8细分,在驱动芯片中往往支持1/2/4/8/16/...../256细分,如上所说,细分模式就是将步进电机的一个整步分为n个微步去走,这样使得我们能够更加精准地控制电机的位置,这在一些高精度要求的场景下非常有用。
pps:pps即pulse per second,每秒脉冲数量,前面提到过,1-2相驱动是将一个正弦波分为了8个脉冲,每个脉冲电机会走一微步,而pps就是驱动芯片每秒发出的脉冲数量,也可以说其为步进电机速度。
另外,在使用驱动芯片过程中,通常还需要配置电流/PWM占空比,PWM占空比越高,即电流越大,驱动能力也越强。
我在目前开发中,主要关注的点就是步距角,细分模式,pps这几个点。
------------------------------------------------------24/7/8补充-------------------------------------------------------------
补充一个新概念:
步进电机开关频率:暂时理解为斩波频率:
步进电机的脉冲频率决定步进电机的转速,但由于绕组是一个电感线圈,电源电压一定时,转速低时流过步进电机绕组的平均电流会很大,为了限制电流,采取斩波电路,就是当电流上升到某一值时,将绕组供电电源断开,这时电流会下降,下降到某一值时再开通,在这个绕组通电周期内多次开通与关断就是斩波器的频率,它肯定要比单片机送给驱动器的脉冲频率高很多,单片机送出一个脉冲步进电机转一步,而在这一步中,又分多次供电与断电.
如下图所示:
通过改变步进电机开关频率,使得步进电机线圈引脚的脉冲频率(这里的脉冲频率不是前面提到的一个脉冲走一微步的脉冲,如上文所说这里的斩波是用于精准控制电压与电流的,这是否和PWM有些相似?)
---------------------------------------------------------24/7/10/补充------------------------------------------------------
步进电机无法驱动的原因终于找到了,原来是有个电机引脚开路了。。。。。。。
参考:
MS32008N用户手册。
这里建议去看一下参考中的这篇文章,个人觉得写得挺好。