ARM技术论坛
登录
直播中
疯壳科技
7年用户
1201经验值
擅长:嵌入式技术
私信
关注
【飞控开发基础教程9】疯壳·开源编队无人机-PWM(电机控制)
开源
无人机编队
PWM
电机控制
飞控
本帖最后由 疯壳科技 于 2022-5-31 11:20 编辑
COCOFLY教程
——疯壳无人机·系列
PWM(电机控制)
图1
一、PWM 简介
脉冲宽度调制(PWM),是英文“Pulse Width Modula
ti
on”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟
电路
进行控制的一种非常有效的技术,广泛应用在从测量、
通信
到功率控制与变换的许多领域中。
PWM 在生活中非常的常见,小到呼吸灯的闪烁,达到航天飞船都会应用到
PWM 技术。PWM 的波形如下图所示。
图2
二、占空比简介
占空比是脉冲宽度调制技术中常用专业术语,占空比是指在一个时钟脉冲周期(T)内,高电平(t1)的时间占总周期时间的比值,即占空比(duty)=t1/T*100%
如下图所示是一系列典型的脉冲波形。
图3
第一个PWM 波,周期为 10ms,高电平的时间为 4ms,所以占空比为 40%,同理第二个 PWM 波为 60%,第三个为 80%。
一般地,占空比反映了等效幅值的大小:占空比越大,等效幅值越高;占空比越小,等效幅值越低。如下图所示为不同占空比对应等效幅值的关系示意图。
图4
三、
STM32
的PWM 模式
STM32 上定时器有专门的 PWM 模式,它的原理是通过定时器使用比较输出的方式如下图所示产生波形。
图5
ARR 为自动重载寄存器,CCR 为捕获/比较寄存器,CNT 就是定时器的计数器,CNT 的值从 0 开始递增,使用 PWM 模式后,可以设置有效电平,以及 PWM 的模式。上图所示的是当 CNT 的值小于 CCRx 时,输出低电平,当 CNT 的值大于 CCRx 时,输出高点平,所以我们可以通过改变 ARR 的值来改变 PWM 的周期,改变 CCRx 的值来改变 PWM 的占空比,从而实现任意频率任意占空比的PWM 波。
四、寄存器
STM32 的 PWM 输出模式涉及到以下寄存器。
(1)TIMx_CR1:定时器控制寄存器 1,如下图所示。
图6
其中 CKD 来设置时钟分频,ARPE 来使能自动重载预装载,CEN 来使能计数器。
(2)TIMx_CCMR1:定时器捕获比较模式寄存器,如下图所示。
图7
OC1M 来配置 PWM 的模式,PWM 模式 1,CNT
CCR1 时为无效状态;PWM 模式 2,CNT
CCR1 为有效状态。OC1PE 来使能预装载。CC1S 来配置通道的输入输出模式(默认为输出模式)。
(3)TIMx_CCER:捕获比较使能寄存器,如下图所示。
图8
CC1P 来配置输出极性,可以选择高电平有效或者低电平有效。CC1E 来使能捕获/比较。
五、PWM 电机控制实验
PWM 电机控制实验使用 STM32 的定时器的 PWM 输出功能,可对飞控上的电机所在的引脚,产生不同占空比的 PWM,从而实现让四个电机以不同的速度旋转。(注意:做实验的时候,占空比不要调节过大,该实验会使旋翼转动,要小心无人机的旋翼划伤手)无人机的四个旋翼如下图所示。
图9
根据原理图,可以看到四个电机分别由两个 AO9926C 控制,AO9926C 其实想当于是两路的 N 沟道 MOS 管,两个 AO9926C 的四个 MOS 管的 G 极(栅极) 接口分别是:PB6、PB7、PB8、PB9,如下图所示。
图10
图11
查看数据手册可知,PB6、PB7、PB8、PB9 分别对应的是 TIM4_CH1、TIM4_CH2、TIM4_CH3、TIM4_CH4,即定时器 4 的输出通道 1~4。
配置输出 PWM 的代码编写的思路如下:
表1
定时器 PWM 输出的初始化代码如下:
图12
装载不同的 CCR 值,产生不同的占空比,从而使四个电机以不同的速度旋转,代码如下图所示。
图13
其中TIM4_CH1 装载CCR 值为25、TIM4_CH2 装载CCR 值为50、TIM4_CH3
装载 CCR 值为 75、TIM4_CH4 装载 CCR 值为 100。如下图所示。
图14
保存、编译、下载代码(注意旋翼会转动,小心划伤),可以看到四个旋翼以不同的速度转动,其中转速的排序为接在 PB6 的电机<接在 PB7 的电机<接在PB8 的电机<接在 PB9 的电机。
配套资料:
http://www.fengke.club
套件地址:
http://shop115904315.taobao.com
文件下载请点击:
【9】PWM(电机控制).pdf
(756.05 KB)
(下载次数: 0, 2022-5-31 11:14 上传)
更多回帖
rotate(-90deg);
回复
相关帖子
开源
无人机编队
PWM
电机控制
飞控
【
疯
壳
·
无人机
教程26】
开源
编队
无人机
-360 度翻滚
2022-09-05
31730
【
疯
壳
·
无人机
教程16】
开源
编队
无人机
-
PWM
(
电机
控制
)
2022-08-31
27194
【
疯
壳
·
无人机
教程7】
开源
编队
无人机
-地面站上位机的使用和介绍
2022-08-24
4548
【
疯
壳
·
无人机
教程5】
开源
编队
无人机
-
飞
控固件烧写
2022-08-23
4712
【
疯
壳
·
无人机
教程2】
开源
编队
无人机
-硬件资源简介
2022-08-19
6953
【
飞
控
开发
高级教程3】
疯
壳
·
开源
编队
无人机
-定高、定点、悬停
2022-07-22
1678
【快速上手教程7】
疯
壳
·
开源
编队
无人机
-地面站上位机的使用和介绍
2022-07-08
2074
【快速上手教程2】
疯
壳
·
开源
编队
无人机
-硬件资源简介
2022-07-04
1696
【
飞
控
开发
高级篇3】
疯
壳
·
开源
编队
无人机
-定高、定点、悬停
2022-06-09
2637
【快速上手教程7】
疯
壳
·
开源
编队
无人机
-地面站上位机的使用和介绍
2022-05-25
3718
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分