一、电机分类
二、直流电机的分类
1.有刷电机
2.无刷电机
3.直流减速电机
三、H桥电路
正向旋转
驱动Q1和Q4
反向旋转
驱动Q2和Q3
四、MC3386电机驱动芯片
1.基本原理图
1)前进/后退:IN1和IN2的电平顺序决定电机的正反转
2)调节速度:高电平引脚的电压值决定电机转动的速度(通过MCU输入的PWM的占空比决定的)
2.PWM应用
占空比:高电平占整个周期的比例
3.输出比较功能框图
ARR:决定周期
CCR:决定占空比(高电平的大小)
五、PWM实验
1.引脚分配
2.使用CubeMX
将PC3和PA3设置为Output,将PA2设置为定时器,输入为PWM波
3.代码编写
1.设置为正转
PC3输出高电平,PA3输出低电平
2.设置PWM波(设置速度)
1.开启定时器
2.设置PWM
通过设置CCR(捕获/比较寄存器),来控制小车的速度
我们将PWMA初始化为800
由实验现象可以知道:只有到转速为1300/8000,电机才开始转动
六、增量式编码器
1.工作原理
有多少个光栅盘就可以产生多少个PWM波
2.STM32-编码器实验
如何通过其输出来进行判断输出为高电平还是低电平???通过判断脉冲相位【A相和B相相差90度】
3.STM32编码器接口
当电机正向转动时,CNT向上计数
当电机反向转动时,CNT向下计数
4.实验
1.引脚分配
2.CubeMX设置
3.代码编写
启动编码器
TIM->CNT---->实际上编码器的计数值就是CNT的计数值
正转一圈:600-700左右(向上计数器)
反转一圈:64900-64800左右(向下计数器)
视频链接:
【一节课秒懂】轻松掌握STM32电机驱动开发_哔哩哔哩_bilibili
七、动手编写
参考博客:
https://www.cnblogs.com/Wilson-hhx/p/10467945.html
https://blog.csdn.net/qq_57707070/article/details/124936006
【STM32】Hal库学习——PWM驱动电机_hal_tim_pwm_start-CSDN博客
1.使用STM32g070RBTx型号的单片机
2.设置CubeMX
我们想要使用PWM的输入占空比来设置电机的输出速度,则将使MOTOR_L_S&&MOTOR_R_S)设置为PWM(定时器部分)
其他引脚设置为输出引脚即可
由于需要双路输出,设定PB5,PB4分别通过TIM3-CH2,TIM3-CH1进行PWM输出
同时PB6,3,1,2输出来控制电机转动
3.启动定时器
4.编写中断回调函数
当达到计数值就会进入这个中断回调