返回

在 Velxio 上使用 Arduino 实现 RGB LED 颜色循环

引言

你是否曾想用 RGB LED 制作多彩灯光效果,却苦于手头没有元件?借助 Velxio,你可以在浏览器中直接仿真整个电路和代码。在本教程中,我们将构建一个简单的 RGB LED 颜色循环器,依次显示红、绿、蓝、黄、青、品红和白色。你将学习如何使用 PWM(脉冲宽度调制)混合颜色,以及如何将共阴极 RGB LED 连接到 Arduino Uno。

电路详解

首先,在 Velxio 画布上放置元件。你需要一个 Arduino Uno 和一个 RGB LED。RGB LED 有四个引脚:一个公共阴极(COM)和三个阳极,分别对应红色(R)、绿色(G)和蓝色(B)。

Velxio 仿真器画布上的 RGB LED 电路图

接线方式如下:

在 Velxio 中,你可以将导线从一个引脚拖到另一个引脚。仿真中导线的颜色与引脚功能对应:红色代表红色,绿色代表绿色,蓝色代表蓝色,黑色代表接地。这让你能轻松跟踪连接。

代码详解

现在我们来编写 Arduino 程序。在 Velxio 中打开代码编辑器,输入以下内容:

Velxio Monaco 编辑器中 RGB LED 的源代码

// RGB LED 颜色循环
// 显示不同颜色

const int RED_PIN = 9;
const int GREEN_PIN = 10;
const int BLUE_PIN = 11;

void setup() {
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);
}

void setColor(int red, int green, int blue) {
  analogWrite(RED_PIN, red);
  analogWrite(GREEN_PIN, green);
  analogWrite(BLUE_PIN, blue);
}

void loop() {
  // 红色
  setColor(255, 0, 0);
  delay(1000);

  // 绿色
  setColor(0, 255, 0);
  delay(1000);

  // 蓝色
  setColor(0, 0, 255);
  delay(1000);

  // 黄色
  setColor(255, 255, 0);
  delay(1000);

  // 青色
  setColor(0, 255, 255);
  delay(1000);

  // 品红
  setColor(255, 0, 255);
  delay(1000);

  // 白色
  setColor(255, 255, 255);
  delay(1000);
}

工作原理

关键概念

PWM(脉冲宽度调制)

PWM 是一种技术,通过数字引脚快速在 HIGH 和 LOW 之间切换来模拟模拟电压。占空比(HIGH 状态的时间百分比)决定了感知亮度。Arduino 的 analogWrite() 在引脚 9、10 和 11 上输出频率约为 490 Hz 的 PWM 信号。

RGB 颜色混合

RGB LED 在一个封装内包含三个独立的 LED(红、绿、蓝)。通过改变每个 LED 的亮度,你可以创建数百万种颜色。例如:

共阴极与共阳极

本教程使用共阴极 RGB LED,其 COM 引脚连接到地。要点亮某种颜色,需向其阳极施加 HIGH 信号。如果你使用的是共阳极 LED,则需将 COM 连接到 VCC,并使用反向逻辑(LOW 点亮)。

常见问题与调试技巧

带有编译和运行控件的 Velxio 编辑器工具栏

仿真视口上方的 Velxio 画布工具栏

扩展建议

在基本颜色循环器正常工作后,可以尝试以下增强功能:

  1. 颜色渐变:使用循环逐渐改变 PWM 值,实现平滑过渡,而非直接跳变。
  2. 按钮控制:添加一个按钮,手动切换颜色。
  3. 电位器输入:使用电位器从调色板中选择颜色。
  4. 串口控制:通过串口监视器发送颜色值,设置自定义颜色。
  5. 多 LED 控制:串联多个 RGB LED,打造灯光秀。

要添加新元件,请使用元件选择器:

按类别浏览元件的 Velxio 元件选择器弹窗

如果需要额外库,库管理器可以轻松完成:

列出已安装 Arduino 库的 Velxio 库管理器弹窗

行动号召

准备好亲眼看看效果了吗?在 Velxio 上打开实时示例,开始实验:RGB LED 颜色循环 - Velxio。无需下载,无需硬件——纯粹的学习体验。祝你玩得开心!


分享到:
David Montero

作者

David Montero

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

GitHub velxio.dev

相关文章


上一篇
在 Velxio 上用 Arduino 构建西蒙说记忆游戏
下一篇
串口Hello World:你的第一个Arduino通信项目