stm32怎么用pwm控制步进电机,我知道控制步进电机要有ena、dir、plu三个管脚,但具体怎么控制呢

stm32怎么用pwm控制步进电机,我知道控制步进电机要有ena、dir、plu三个管脚,怎么控制呢,是都要用pwm么,三个管脚都要映射么?还是说ena是要给高电平,plu要用pwm要映射?那dir怎么控制方向呢?刚开始学,有现有的程序么,不要太复杂的,只要能正反转,其他的都不要

ENA 是开启 当ENA 为高电平时,此时的PLU 输入的信号 才会有效,,DIR 为方向 ,0 1 分别为正,反转,PLU 就是你输出的脉冲信号 ,即PWM波,,

写程序时,你定义以上三个变量,其中PLU 输入一个脉冲,就可以了,,当然脉冲频率要看你具体的电机 ,,有了脉冲,给驱动器就能控制电机转动,当然如果没有驱动器,你可以做一个,用2804 等芯片,,做一个也挺简单,没芯片,可以找H桥电路,没有H桥,自己用三极管 搭一下,也可以。追问

谢谢,你这么一说就明白多了,给ena高电平就好了,dir设高低电平就是反正转,那plu怎么给脉冲呢,不是改变占空比吧

追答

定义一个变量,,置0 延时,置1 再延时,就是一个上升脉冲信号,然后不断的重复,,当需要改变速度的时候,延时的时间加长,就是了,

追问

就是说,我在motor函数里定义管脚、时钟和pwm模式,然后在main函数里定义一个u32 i,while i=0延时,i=1延时,然后就能不停的转了是吧

追答

是的,,

大概这个样子,
void main()
{
WHILE(1){
driver(xx)

}
}
void driter(uint32 xx)
{
PWM=0

DELAY (10)
PWM=1
DELAY(XX)
PWM=0
}

你只要改变XX就能改变速度。

温馨提示:答案为网友推荐,仅供参考