一、DRV8825芯片
DRV8825芯片优势:体积小,驱动能力强,同时比298N更加稳定。
只需要一个PWM波就能控制步进电机,同时基本上三个引脚就能完全控制步进电机了,如果还需要精准控制,DRV8825同样能够达到该功能。而且芯片的工作电压在8~42V.
连线图:
但是其中有个误区,这是我没调出来的,就是我的RESET和SLEEP两个引脚并联并不能让电机动起来,只有将他们接高电平时才能使其动起来。
1.引脚介绍
RESET与SLEEP连到一起,接单片机IO;
STEP接单片机IO;这部分最重要,后面会针对这个引脚驱动继续介绍。
DIR引脚,电机转向控制引脚。
M0,M1, M3为细分设置引脚。(后面会附图)
ENABLE接地;
FAULT接高电平;
注意:在这里,我不建议将FAULT接高电平,可以直接悬空
同时EN使能引脚最好将它连接到引脚上,这样有两个好处
(1)、这样你能直接控制电机是否转
(2)、如果不给PWM波,电机同样也能不转,但是这样芯片容易发烫烧坏,所以我建议当我们不需要电机转的时候,改变使能引脚更加合理。
2.STEP引脚是最重要的,产生脉冲给驱动芯片。
在尝试了2相4线所有的线序的情况下,如果电机还是会抖动不转,那么一定是驱动频率不对。
我驱动了两个步进电机,一个频率在20khz才转,另一个5khz才转,差距还是比较大的。
驱动方法:首先我用stm32的硬件产生pwm波驱动,后来发现如果要控制转动的圈数,其实并不如用IO口模拟方便。
控制IO产生一定频率高低电平,便可驱动。简单,容易控制脉冲数。
我设置的32细分,640脉冲刚好走完一圈。也就是说步进角是18度。
控制脉冲频率可以控制步进的转速,过高过低都不行。
程序我会放在一个下载包里。有什么具体问题,可以私聊我,毕竟当时为了解决这个问题走了很多弯路,不希望你们和我一样花太多时间走弯路。