14-STM32 PWM脉冲宽度调制

14-STM32 PWM脉冲宽度调制

PWM&呼吸灯

在一组方波信号中

一个周期内包括高点平和低电平

假设高电平和低电平各占0.5ms 则一个周期为1ms

占空比:

数字信号与模拟信号:

PWM:用数字信号模拟模拟信号,实现线性功能。

通过调整占空比,模拟出不同的电压值,PWM就可以在宏观上实现类似正弦波等不同的波形信号

如何让STM32输出PWM信号:

需要借助定时器的另一种模式:输出比较模式。

在输入捕获模式下:检测到上升沿时会将计数器中的值捕获到捕获寄存器中

在输出比较模式下:变成了比较寄存器

通常我们会使用向上计数模式

对于有效电平和无效电平的解释输出控制器也反向输出

总之:

通过调节比较值,就可以控制占空比,进而调节宏观上的电压值

小灯对应的通道:

在PWM模式1 中Pulse设置的越小在占空比就越小

入将Pulse设置为50,则会输出3.3/2=1.6V左右的电压。小灯会更暗一点。

启动PWM输出

c 复制代码
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);

停止PWM输出

c 复制代码
HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);

修改PWM的比较的值

c 复制代码
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,50);

舵机使用SG90

1.SG90是一种简易的伺服电机系统

给一个PWM不同的占空比即可控制点击旋转到指定角度。

绝大多数舵机通常使用50Hz,也就是周期为20ms的PWM信号进行控制,且占空比都是2.5% ~ 12.5%

输出占空比为2.5%的占空比PWM信号,舵机就会旋转到0°位置。

输出占空比为7.5%的占空比PWM信号,舵机就会旋转到90°位置。

输出占空比为12.5%的占空比PWM信号,舵机就会旋转到180°位置。

对于自动重装载值为200,设置比较寄存器的值为5,则舵机会旋转到0°。设置比较寄存器的值为15,则舵机会旋转到90°.设置比较寄存器的值为25,则舵机会旋转到180°

舵机的三根线

棕色:地线,接地。

红色线:火线,用于连接5V正极。

黄色线:数据线,用于接收单片机发送的PWM信号。

连接好线路,找到黄色线对应GPIO口的定时器通道,如

将tim3设置为pwm生成模式,将周期设置为50hz,即20ms , (内部时钟源为72Mhz) 72000000/(7200*200) = 50MH 7200X200 / 72000000= 0.02s

开启 TIM3的通道2

c 复制代码
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);

3.设置比较寄存器的值

c 复制代码
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,5);
相关推荐
恒锐丰小瑞11 小时前
率能SS8841T 40V/2.5A/双通道H桥驱动芯片,PWM控制接口与低导通电阻(350mΩ),用于POS打印机/安防相机/机器人
单片机·嵌入式硬件·机器人
zcmodeltech12 小时前
钢铁冶金沙盘模型控制系统设计与实现:高炉-连铸-热轧多工序联动方案
分布式·stm32·单片机·嵌入式硬件·交互
徽京人13 小时前
VS Code 接入Esp 32步骤
vscode·单片机·嵌入式硬件
QH1392923188014 小时前
Keysight N5183B N5183B 微波模拟信号发生器
网络·单片机·嵌入式硬件·集成测试·信息与通信
笨笨饿15 小时前
#110_SCH3000 平台图传系统配置指南:从 DVP 摄像头到 UVC/WiFi 双通道传输
c语言·stm32·单片机·嵌入式硬件·物联网·vim
捷瑞电子工坊15 小时前
FreeRTOS事件组:多任务同步的利器
stm32·嵌入式·freertos·实时操作系统·标准外设库·事件组·任务同步
笨笨饿16 小时前
#109_BK7258 蓝牙 A2DP 音频数据通路深度解析
python·stm32·单片机·mcu·物联网·编辑器·音视频
千秋岁rr17 小时前
5.0 TIM
单片机·嵌入式硬件
qq_4017004117 小时前
ADC基准电压与参考电压详细解读:以STM32和28335为例
stm32·单片机·嵌入式硬件
小僧景贤17 小时前
STM32 startup.s 启动文件与 .map 映射文件深度技术解析(md/hd 版本差异化对比)
stm32·内存映射·startup.s·map 文件·单片机启动流程