深色模式
第 9 章:使用PWM脉宽调制功能控制 LED 亮度和风扇调速
冷知识:红米K80至尊版发布的时候,宣传屏幕最高可达3840Hz PWM 调光,是每秒屏幕可以闪烁3840次,树莓派pico理论PWM频率为8Hz~25,000,000 Hz。
9.1 核心原理:PWM 脉宽调制
传统电路中,要让电器实现"半亮"或"半速",需要在电器两端串联一个电阻来分压限流。但单片机出现后,情况发生了改变:单片机可以高速切换高低电平,通过调节高电平在一个周期内的占比,就能等效实现电阻的功率控制效果。
GPIO(通用输入输出端口)只能输出数字电平(0V 或 3.3V),无法直接提供连续变化的模拟电压。而 PWM(脉冲宽度调制)技术通过快速切换高低电平,利用人眼的视觉暂留特性或电机的转动惯性,就能实现"等效"的亮度或速度控制。
这个原理可以用高压水枪类比:水枪全开时射程 10 米,如果周期性快速开关水枪,一个周期内开启时间越长、关闭时间越短,平均射程就越接近 10 米;反之,关闭时间占比越大,平均射程就越小。PWM 正是通过这种方式,调整高低电平的时间占比,实现对设备的精准模拟控制。
占空比(Duty Cycle) = 高电平时间 / 周期时间
占空比 0%:始终低电平,LED 熄灭/风扇停转
占空比 50%:一半时间高电平,LED 中等亮度/风扇半速
占空比 100%:始终高电平,LED 最亮/风扇全速
树莓派 Pico 每个可编程管脚均可生成 0-255 的 PWM 输出,默认高电平为 3.3V,如果需要输出一个 2.0 伏,只需要将 PWM 值设置为 2/3.3*255=196,即可得到约 2.0V 的等效电压。
PWM 值设为 255 时等效于高电平,设为 0 时等效于低电平。学习了该章内容,建议读者学习完本章内容后,续统一采用 0–255 的 PWM 控制,替代单纯的高低电平。使用PWM,程序后期拓展性更强。

9.2 接线方法
LED 调光:将 LED 长脚接于 GP0 管脚上,短脚串联上一个 100 欧电阻,接于 GND 上。
风扇调速:参考 8.2 接线方式。
9.3 代码实现
LED 调光(呼吸灯效果,LED 从熄灭到最亮的平滑渐变):

风扇调速:

