基于stm32与l298n的直流电机pwm调速(一)

这一段时间内和舍友一起开发智能语音无人车,现阶段在准备各种零部件,接下来会一直持续更新无人车进展,今天先来分享一下直流电机的pwm调速系统的原理。

原理图如下:
基于stm32与l298n的直流电机pwm调速(一)

在这里采用的是不带霍尔编码器的直流电机所以不存在上图的位置反馈,stm32控制器采用ze系列不多做介绍,重点说一下电机驱动器。常见的驱动芯片有很多,L298N,BST7970,MC33886等等,这里采用L298N,支持双轴控制,其电路原理就是两个H桥电路,如下
基于stm32与l298n的直流电机pwm调速(一)

out1和out2分别接电机的正负极;in1和in2是逻辑信号,控制电机的正反转;ena是使能信号,右边同理。单独分析左边或者右边的电路其实就是一个H桥电路,如下
基于stm32与l298n的直流电机pwm调速(一)

当逻辑信号dir-l和dir-r分别为0和1时,并且使能信号为1,则三极管q1和q4导通,电机正转;当当逻辑信号dir-l和dir-r分别为1和0时,则三极管q2和q3导通,电机反转。而enable则接入pwm输入,通过控制pwm的占空比,来实现调速。(l298n自身可以接使能信号,可以利用高级定时器互补通道输出pwm控制in1和in2达到上述效果,即使能信号常高,而in1与in2为互补的pwm波形)

具体的模块图如下:
基于stm32与l298n的直流电机pwm调速(一)

具体接线,使用方法与程序代码会持续更新。