跳到主要内容

第四课:PWM - 让LED"呼吸"起来

📌 学习目标​

  1. 理解什么是 PWM
  2. 理解占空比的概念
  3. 学会用 PWM 控制 LED 亮度
  4. 制作 LED 呼吸灯效果

🎯 什么是 PWM?​

PWM = Pulse Width Modulation = 脉冲宽度调制

形象的比喻​

想象你在快速开关一盏灯:

  • 开的时间长,关的时间短 → 灯看起来亮
  • 开的时间短,关的时间长 → 灯看起来暗
  • 开和关的时间相等 → 中等亮度

这就是 PWM 的基本原理!


📊 关键概念:占空比​

占空比 = 高电平时间 ÷ 周期时间

占空比LED亮度
0%完全熄灭
25%较暗
50%中等亮度
75%较亮
100%最亮

🎛️ PWM 的常见用途​

  1. 控制 LED 亮度(呼吸灯)
  2. 控制电机速度
  3. 产生声音(蜂鸣器)
  4. 舵机角度控制

🔧 在 JoyKit 中使用 PWM​

JoyKit 内置了 WS2812B LED,可以通过指令控制颜色和亮度。

相关指令​

指令功能
0xE6设置 LED 模式
0xE7配置呼吸灯参数
0xE4设置 LED 颜色

🔬 课堂演示项目:LED 呼吸灯​

项目目标​

让 LED 从暗到亮,再从亮到暗,循环往复,呈现"呼吸"效果。

硬件需求​

  • 板载 WS2812B LED

参考程序​

; LED 呼吸灯项目
000 C7 0001 0000 ; 启用 WS2812B
001 E6 0002 0000 ; 设为呼吸模式
002 E7 000A 0000 ; 配置呼吸参数(步数=10,间隔=0,起始=0,结束=0)
003 E4 00FF 0000 ; 红色
004 02 0FA0 0000 ; 延时
005 0E 0003 0000 ; 循环

教学建议​

  1. 改变颜色:R31/R32/R33 分别代表红/绿/蓝
  2. 改变速度:调整延时参数
  3. 加入按钮控制:按一下开始呼吸,再按一下停止

📈 观察 PWM 波形​

如果你有示波器,可以观察 PWM 信号:

高电平  ████░░░░███░░░░
↑ ↑
开 关
时间 时间
  • 高电平 = LED 亮
  • 低电平 = LED 灭
  • 高电平比例 = 亮度

💡 进阶:用代码模拟 PWM​

虽然 JoyKit 有硬件 PWM,但我们可以用软件模拟:

; 软件模拟 PWM(简化版)
000 10 0000 0005 ; R0 = 5 (亮度)
001 01 0001 0000 ; LED开
002 02 0005 0000 ; 延时 R0
003 01 0000 0000 ; LED灭
004 02 000A 0000 ; 延时 (15-R0)
005 0E 0001 0000 ; 循环

🎉 小结​

今天我们学到了:

  • ✅ PWM = 脉冲宽度调制
  • ✅ 占空比决定亮度
  • ✅ JoyKit 的 LED 有硬件呼吸模式
  • ✅ 完成了 LED 呼吸灯项目
  • ✅ 可以用软件模拟 PWM

下一课我们将学习 I2C 协议,了解单片机如何与传感器通信!