1.直流电机旋转方向与H桥
为了灵活控制电机的旋转方向,通常采用H桥作为电机的驱动电路,本例中,采用4个MOSFET(场效应管)作为电子开关,电机驱动原理如图所示,当需要电机正向旋转时,打开Q1/Q4管,当需要电机反向旋转时打开Q2/Q3管。电机正转和反转时的电流流向如图所示。需要注意的是Q1与Q2不能同时打开,Q3与Q4不能同时打开,否则电源被直接短路到GND,电流瞬间增大,会导致功率开关管温度剧增击穿烧毁。
2.直流电机的旋转速度与PWM
仅仅打开Q1/Q4(或者Q2/Q3)是将母线电压Udc(图中为12V)完全加在电机两端,无法控制电机的速度,由于直流电机的速度与加在电机两端的电压成正比,所以可以通过改变电机的电压来改变电机的速度,通过PWM可以改变加在电机两端的平均电压,例如,在Q1管加50%占空比PWM信号,Q4管完全打开,如下图所示,则相当于加在电机端的电压为Udc/2(6V),只要通过改变PWM占空比(0%~100%)即可实现电机调速。
综上所述:(1)当给Q1管PWM信号,Q4完全打开,电机正向旋转,电机的速度由PWM的占空比决定;(2)当给Q3管PWM信号,Q2管完全打开时,电机反向旋转,电机速度由PWM占空比决定。所以,H桥的控制需要两路PWM信号,以及两路电平控制信号(普通IO口即可)。
3.基于STM32的PWM输出
显然,在H桥上我们需要四路控制信号,两个上桥臂需要两路PWM,两路下桥臂采用普通I/O端口,让我们打开前面建立的CubeMX工程,如下图所示。
这里我们采用STM32的高级定时器TIM1,软件需要根据硬件电路的连接来配置(PS:这就是嵌入式软件工程师和IT行业软件工程师的区别之一,IT行业软件工程师一般专注于软件的开发,不需要关心硬件,而嵌入式分为嵌入式软件工程师和嵌入式硬件工程师,统称为电子工程师,硬件工程师在电路设计时要考虑芯片引脚是否有相应的接口,软件工程师在编写软件时要按照电路原理配置底层),如下图所示,完成各项配置后,直接点击右上角GENERATE CODE
接下来添加代码,测试PWM输出。首先,用keil打开上面配置后生成的工程,新建pwm.c/,h文件,并添加代码,如下图所示。
4. PWM输出软件仿真
参照上一小节完成软件仿真的设置,点击debug进入软件仿真界面,全速运行,结果如图所示,实验成功。