stm32驱动直流电机PWM调速问题

stm32f103驱动直流电机,类似A4950两个IN1,IN2输入口,stm32是要产生两路互补的PWM驱动?还是一路为高(或低),另一路为PWM,正反转时两路状态互换来实现PWM调速?

电机驱动芯片,一般都不需要PWM输入,都是高低电平加一个使能控制。

EN =1 ,  IN1=1,  IN 2 =0; //正转
EN =1 ,  IN1=0,  IN 2 =1; //反转

如有帮助请点采纳!

一路为高(或低),另一路为PWM,正反转时两路状态互换来实现PWM调速

常见的,IN1固定低,IN2 PWM控制, 当IN2的PWM到高时,电机的两根线一个高一个低,电机就转了,当IN2的PWM到低时,电机2线都是低,电机不供电。这样你调占空比时电机速度就对应的改变了。

不要互补,电机高频转向会产生相当高的电流和反向电压,会冒烟的

你要调速度,那用PWM输入也是可以,高低电平是全速度。
PWM调速方式很多了,你可以一个高电平,一个PWM。或者两路互补PWM
原理:
1、通过比较两个控制引脚输出PWM的大小关系来确定电机方向的,
IN1(PWM1占空比)>IN2(PWM2占空), 左转
IN1(PWM1占空比)<IN2(PWM2占空), 右转
2、两个控制引脚输出PWM的差值决定电机的转速

rateL = IN1(PWM1占空比) - IN2(PWM2占空), 左转速度
rateR = IN1(PWM1占空比) - IN2(PWM2占空), 右转速度


如有帮助请点采纳!谢谢!