控制L298N驱动电机:PWM控制实现
目录
pwm基本结构:运行控制 → 时基单元 →捕获/输出比较通道
STM32F103c8t6定时器:TIM1、TIM2、TIM3、TIM4
一、L298N驱动电机
L298N驱动:输入:12V
(电机1):N1、N2———输出A
(电机2):N3、N4———输出B

注:(跳帽没拔掉,ENA、ENB默认高电平)
电机转动:
记得看:哪些端口给pwm输出脉冲波
①不考虑电机调速:使能ENA、ENB置于高电平,直接对N1、N2、N3、N4接入高低电平
(电机以最快速度转动)———————————没办法调整左右轮速度
②考虑电机调速:使能ENA、ENB置于高电平
2个pwm
接入两个端口:左电机(N1/N2) & 右电机:(N3/N4)
例:
左电机: IN2→PWM1, IN1→GND
右电机:IN3→PWM2, IN4→GND
4个pwm
左电机:IN1→PWM1,IN2→PWM2
右电机:IN3→PWM3,IN4→PWM4
左轮:
(例:)
正转:PWM2输出占空比为0的波形(相当于置于低电平0),通过调节PWM1的占空比进行调速
反转:PWM1输出占空比为0的波形(相当于置于低电平0),通过调节PWM2的占空比进行调速
右轮:同理
二、pwm波输出——电机转动
pwm(脉冲宽度调制)
数字输出信号,高低电平组成 → 连续变化电平信号 → pwm波形
使用pwm波形可以在数字系统中等效输出模拟量==============电机控速
pwm参数
(高电平时间相对于整个周期时间的比例)→ 决定pwm等效出来的模拟电压大小
pwm参数计算
PWM频率 = CK_PSC / (PSC + 1) / (ARR + 1)
PWM占空比= CCR / (ARR + 1)
PWM分辨率= 1 / (ARR + 1)
输出比较
通过比较CNT与CCR(捕获/比较寄存器)值的关系
↓
对输出电平进行置1、置0或翻转的操作
(用于输出一定频率和占空比的PWM波形【驱动电机的必要条件】)
pwm基本结构:运行控制 → 时基单元 →捕获/输出比较通道
时基单元
① ARR 自动重装器
②PSC 预分频器
③CNT 计数器
捕获/输出通道的输出
CCR 捕获/比较器 (CNT与CCR大小比较)
→ 输出模式控制器===发出REF信号(指:输出信号的高低电平)
→ 极性选择 (CNT与CCR大小比较)(输出比较模式配置:例:PWM模式1 向上计数)
→输出到GPIO
STM32F103c8t6定时器:TIM1、TIM2、TIM3、TIM4
拥有通用定时器全部功能
+
重复计数器+死区生成+互补输出+刹车输入 (三相无刷电机)
拥有基本定时器全部功能(定时中断、主模式触发DAC的功能)
+
内外时钟源选择+输入捕获+输出比较+编码器接口+主从触发模式
基本定时器
PSC 预分频器
CNT 计数器
ARR 自动重装寄存器
通用定时器
TIMx_ETR外部时钟(EXternal)—–ETR(外部输入引脚)接
配置内部的极性选择、边沿检测、预分频器电路
①外部ETR触发脚信号
ETR:与外部管脚相连的触发定时器专用触发脚
②边沿预分频后ETR信号
ETRP:边沿预分频后ETR信号
③经过滤波后的ETR有效信号
ETRF:ETRP经过滤波,极性,边沿后的有效信号
PWM输出
输出脉宽可调的方波信号
影响因素(两个关键):
1.信号频率由自动重装载寄存器(ARR)的值决定
2.占空比由比较寄存器(CCR)的值决定
总结
第一次写博客,想把自己最近的学习心得记录下,相互学习,有错误的话,欢迎大佬指正。