ARM嵌入式学习笔记(5)产生PWM控制舵机

ARM嵌入式学习笔记(5)产生PWM控制舵机

PWM基本知识

PWM 即脉冲宽度调制是英文“Pulse Width Modulation”的缩写,简称脉宽调试。是利用微
处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。广泛应用在从测量、通信
到功率控制与变换的许多领域中在这里插入图片描述
例如上图中,矩形脉冲是 stm32 输出的数字信号,当这个信号接到外设上时,效果可以等效为这个正弦波。
一个周期内高电平的持续时间占总周期的比例成为占空比,通过修改占空比,可以改变输出的等效模拟电压。例如输出占空比为 50%,频率为 10Hz 的脉冲,高电平为 3.3V.则其输出的模拟效果相当于输出一个 1.65V 的高电平。
此外 PWM 输出的频率也会影响最终的 PWM输出效果,PWM 输出的频率越高,最终输出的“连续性”越好,越接近模拟信号的效果,频率低则会增强离散性,最终的输出效果会有比较强的“突变”感。
脉冲调制有两个重要的参数,第一个就是输出频率,频率越高,则模拟的效果越好。第二个就是占空比。占空比就是改变输出模拟效果的电压大小。占空比越大则模拟出的电压越大。
舵机使用的 PWM 信号一般为频率 50Hz,高电平时间 0.5ms-2.5ms 的 PWM 信号,不同占空比的 PWM 信号对应舵机转动的角度,以 180 度舵机为例,对应角度图如下图所示。
在这里插入图片描述

CubeMX配置PWM

在这里插入图片描述
我们打开PWM通道1然后配置定时器频率为50Hz
在这里插入图片描述
在这里插入图片描述
这里的Pulse就是PWM的占空比,我们在程序中修改这个值,即可改变PWM的占空比,最大值为ARR的值。

代码

首先开启定时器

HAL_TIM_Base_Start(&htim2);

然后开启PWM通道

HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

改变ARR的值即可改变PWM占空比

__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, “ARR的值”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值