TIM输出PWM控制电机
PS:所有的芯片端口,最多耐压5V
打开PWM波,设定一个波形作为PWM波的输出。300设为100,转速从111将为30rpm
PID算法
为什么有PID算法?
- 在电机体质不可能相同
- 相同的pwm加在多个电机,怎么保持相同转速
- 外力作用,负载变化问题
- 闭环控制电机转速 测速->误差计算->pwm调整
缺点:没有明确的优化准则,基本用经验进行调试。
比例(P)控制:力度值
积分(I)控制:响应速度
微分(D)控制:达到目标值的时候,抑制惯性过调
例如:设定转速为50转,那么利用PID算法代码如下:
死区控制
Q1和Q2,或者Q3和Q4是不能直接导通的,不然就要烧掉了。
晶体管导通和截止是有一个反应时间的,这就导致了电机不能瞬间翻转。
- 判断当前转速rpm_cur和传入的需求转速pwm符号相反,则说明需要有反转。
- 先把pwm波关闭
- 然后在把电机驱动芯片上的in1和in2引脚,线关闭再打开。
- pwm波没有负值,所以需要有个 pwm = -pwm的操作