返回

用PWM让Arduino上的LED呼吸——新手教程

简介

欢迎来到你的第一个PWM(脉冲宽度调制)项目!在本教程中,我们将搭建一个简单的电路,让LED从熄灭到明亮再回到熄灭,实现平滑的呼吸效果。这是一个经典的Arduino新手项目,教你如何使用analogWrite()来控制亮度、电机速度,或任何对平均电压变化有响应的设备。

我们将使用Velxio,一个支持SPICE精度模拟的在线电路仿真器。无需硬件——只需你的浏览器!你可以跟着操作,编辑代码,并立即看到结果。

Velxio仿真器画布上呼吸灯电路的电路图

电路讲解

让我们看看这个项目所需的元件和接线。

元件清单

元件数量备注
Arduino Uno1整个系统的大脑
LED(任意颜色)1我们将使用蓝色LED
电阻(220 Ω)1限流电阻(原理图中未显示,但建议使用)
杜邦线2用于连接

接线步骤

  1. LED阳极(长脚) → 连接到Arduino的9号引脚(支持PWM的引脚)。
  2. LED阴极(短脚) → 连接到Arduino的GND

重要提示: 务必在LED电路中串联一个限流电阻(通常为220 Ω到1 kΩ),以防止烧坏LED。在Velxio仿真器中,LED模型已包含内部电阻,但在实际硬件中你必须添加一个。

以下是详细的接线说明:

就这样!只需要两个连接。Arduino的9号引脚可以输出PWM信号,我们将用它来改变LED的亮度。

Velxio Monaco编辑器中呼吸灯的源代码

代码讲解

在Velxio中打开代码编辑器。你会看到以下Arduino代码:

// Fade LED with PWM
// Smoothly fade LED brightness

const int LED_PIN = 9; // PWM pin

int brightness = 0;
int fadeAmount = 5;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  analogWrite(LED_PIN, brightness);

  brightness += fadeAmount;

  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  delay(30);
}

工作原理

关键概念

常见问题与调试技巧

  1. LED不亮?

    • 检查LED是否正确连接(阳极接9号引脚,阴极接GND)。
    • 确保代码已上传(点击工具栏中的运行按钮)。
    • 确认LED_PIN与实际使用的引脚一致。
  2. LED一直保持最亮?

    • 确保你使用的是支持PWM的引脚(Uno上的3、5、6、9、10、11)。13号引脚不支持PWM。
    • 检查是否调用了analogWrite(),而不是digitalWrite()
  3. 呼吸速度太快或太慢?

    • 调整delay(30)的值。数值越大,呼吸越慢。
    • 修改fadeAmount来控制步长(例如,1表示非常平滑,10表示更快)。
  4. 仿真器无响应?

    • 使用画布工具栏中的重置按钮。
    • 如有必要,刷新页面。

Velxio编辑器工具栏,包含编译和运行控件

建议的扩展练习

掌握基本的呼吸效果后,尝试以下挑战:

  1. 多个LED:在10号和11号引脚上再添加两个LED。让它们依次呼吸或以不同速度呼吸。
  2. 按钮控制:添加一个按钮来启动/停止呼吸效果。
  3. 电位器速度控制:使用电位器调节呼吸速度(将delay(30)替换为从模拟输入读取的变量)。
  4. RGB LED:使用RGB LED,通过控制三个PWM引脚实现不同颜色的呼吸效果。
  5. 串口监视器:将亮度值打印到串口监视器,用于调试。

亲自试试吧!

准备好看看效果了吗?在Velxio中打开实时示例:

👉 启动呼吸灯示例

你可以编辑代码、改变呼吸速度,甚至添加新元件。仿真器完全在你的浏览器中运行——无需下载,无需设置。

祝你呼吸愉快!


分享到:
David Montero

作者

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

相关文章


上一篇
串口Hello World:你的第一个Arduino通信项目
下一篇
按钮控制LED:你的第一个Arduino输入项目