PWM模拟电压:数字信号“平均”一下,就能变成模拟量

短文标题:PWM模拟电压:数字信号"平均"一下,就能变成模拟量

你有没有想过一个问题:GPIO只能输出0V或3.3V,怎样才能让它输出1.65V?答案是:PWM(脉冲宽度调制)。在足够短的时间内,让引脚50%时间输出3.3V、50%时间输出0V。外接的RC低通滤波器会把高频分量滤掉,负载(比如LED、电机)感受到的是平均电压------1.65V。占空比 = 高电平时间 / 周期。50%占空比 → 平均电压 = 50% × 3.3V = 1.65V。

**那个"平均"的物理原理,**PWM不是真的产生了1.65V,而是利用物理系统的惯性:

  • 人眼的视觉暂留:LED快速闪烁,眼睛看到的平均亮度
  • 电机的机械惯性:PWM驱动电机,转速由平均电压决定
  • RC滤波器的积分作用:电阻电容将PWM波形平滑成直流电压

这就是"用时间换电压"------调整高低电平的时间比例,产生任意中间电压。

**那个"占空比"与"分辨率",**PWM的分辨率取决于定时器的位数。

  • 8位定时器:256级占空比(ARR=255)
  • 16位定时器:65536级占空比(ARR=65535)

公式:平均电压 = VCC × (CCR / ARR),ARR越大,电压调节越细腻。

**那个"频率"的选择,**PWM频率不能太低:LED会闪烁(人眼>100Hz),电机会抖动(机械响应延迟),音频会产生啸叫(人耳20Hz~20kHz)。频率也不能太高:MOS管开关损耗会增加(每开一次/关一次都要消耗能量),且负载可能呈感性,阻抗随频率变化。常用经验值:

  • LED调光:200Hz~1kHz
  • 电机调速:10kHz~20kHz(避开人耳最敏感的2kHz~5kHz)
  • 数字电源:50kHz~100kHz以上

**那个"RC滤波"的平滑,**如果想得到真正的直流电压(如DAC输出),需要在PWM输出后加低通滤波器(电阻+电容)。截止频率f_c = 1/(2πRC),应远低于PWM频率。例如PWM=10kHz,RC截止频率取1kHz:R=1kΩ,C=1/(2π×1000×1000)≈0.16μF,取0.1μF即可。注意输出端加运放缓冲驱动,否则负载会改变RC滤波特性。

**那个"硬件PWM"的优势,**用定时器中断模拟PWM,CPU负载极高(每周期进中断)。

STM32的通用定时器自带硬件PWM:只需设置ARR和CCR,启动定时器,硬件自动翻转引脚,CPU占用率≈0。

这个故事的启示, 为什么PWM能模拟模拟电压?因为物理系统有"惯性"------人眼、电机、RC电路,都会对输入做"平均"。这就是数字世界通往模拟世界的桥梁。**没有昂贵的DAC,一个定时器就能输出模拟电压。写在最后,**下表快速总结PWM的应用:

(本文灵感源于于振南《新概念ARM32单片机》教程第6.6节"通用定时器 PWM 原理与数字模拟信号转换",感谢作者将PWM模拟电压的精髓讲得如此通透。)

如果您觉得这个故事对您有启发,欢迎点赞、转发,让更多工程师看到这个藏在"平均电压"背后的PWM智慧。

相关推荐
ZLG_zhiyuan35 分钟前
示波器探头选型指南:5大分类,3步正确适配(附避坑清单)
单片机·嵌入式硬件
M78佐菲8 小时前
51单片机学习笔记:ds18b20要点整理
linux·笔记·嵌入式硬件·学习·51单片机
洪核单片机10 小时前
DPJ-96基于STM32单片机wifi远程监控智慧教室 温湿度光照粉尘人数考勤
stm32·单片机·嵌入式硬件·智慧教室·教室人数考勤
m0_7527531211 小时前
单片机基础知识
单片机·51单片机
天空'之城11 小时前
单片机基础核心知识点汇总(三十六)
单片机·嵌入式硬件
云泽80812 小时前
STM32 USART 详解(八):C I/O 串口重定向原理与实现
c语言·stm32·嵌入式硬件
Doraemomo14 小时前
IMX6ULL裸机开发——系统主频和时钟配置
arm开发·嵌入式硬件·makefile·imx6ull
深圳市恒锐丰科技杨生15 小时前
EG1192H 零功耗使能集成上管非同步降压 DC‑DC|屹晶 EGmicro
嵌入式硬件·硬件工程
星栖与芯16 小时前
LiteOS-M 切换汇编逐行图解(1):汇编是什么·寄存器与栈
汇编·stm32·嵌入式硬件·harmonyos·鸿蒙系统
xx~t17 小时前
嵌入式——单片机2
嵌入式硬件·学习·51单片机·串口·蜂鸣器