引言
你是否曾想用 RGB LED 制作多彩灯光效果,却苦于手头没有元件?借助 Velxio,你可以在浏览器中直接仿真整个电路和代码。在本教程中,我们将构建一个简单的 RGB LED 颜色循环器,依次显示红、绿、蓝、黄、青、品红和白色。你将学习如何使用 PWM(脉冲宽度调制)混合颜色,以及如何将共阴极 RGB LED 连接到 Arduino Uno。
电路详解
首先,在 Velxio 画布上放置元件。你需要一个 Arduino Uno 和一个 RGB LED。RGB LED 有四个引脚:一个公共阴极(COM)和三个阳极,分别对应红色(R)、绿色(G)和蓝色(B)。

接线方式如下:
- 将 RGB LED 的 R 引脚连接到 Arduino 的 9 号引脚(红色导线)。
- 将 G 引脚连接到 10 号引脚(绿色导线)。
- 将 B 引脚连接到 11 号引脚(蓝色导线)。
- 将 COM 引脚连接到 Arduino 的 GND(黑色导线)。
在 Velxio 中,你可以将导线从一个引脚拖到另一个引脚。仿真中导线的颜色与引脚功能对应:红色代表红色,绿色代表绿色,蓝色代表蓝色,黑色代表接地。这让你能轻松跟踪连接。
代码详解
现在我们来编写 Arduino 程序。在 Velxio 中打开代码编辑器,输入以下内容:

// 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 引脚定义了常量:
RED_PIN = 9、GREEN_PIN = 10、BLUE_PIN = 11。这些引脚支持通过analogWrite()进行 PWM 输出。 - setup():将三个引脚设置为输出模式。
- setColor():一个辅助函数,接收三个 0-255 的值(分别对应红、绿、蓝),并通过
analogWrite()将它们写入相应引脚。这会生成 0 到 5V 之间的电压,从而控制 LED 的亮度。 - loop():调用
setColor()并传入不同组合以产生颜色。每种颜色显示 1 秒(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 点亮)。
常见问题与调试技巧
- 引脚号错误:请仔细检查 R、G、B 引脚是否连接到正确的 Arduino 引脚(9、10、11)。导线接错会导致颜色显示错误。
- 缺少接地:COM 引脚必须连接到 GND。否则 LED 不会亮起。
- PWM 与数字输出:
analogWrite()仅适用于支持 PWM 的引脚(Uno 上标有 ~ 的引脚)。使用非 PWM 引脚只能实现完全开或关。 - 延时设置:
delay(1000)会暂停整个程序。对于需要更快速响应的项目,可考虑使用millis()实现非阻塞定时。 - 仿真器问题:如果 LED 不亮,请检查 Velxio 中的接线。使用画布工具栏放大并验证连接。


扩展建议
在基本颜色循环器正常工作后,可以尝试以下增强功能:
- 颜色渐变:使用循环逐渐改变 PWM 值,实现平滑过渡,而非直接跳变。
- 按钮控制:添加一个按钮,手动切换颜色。
- 电位器输入:使用电位器从调色板中选择颜色。
- 串口控制:通过串口监视器发送颜色值,设置自定义颜色。
- 多 LED 控制:串联多个 RGB LED,打造灯光秀。
要添加新元件,请使用元件选择器:

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

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