Arduino RGB LED调色器:三电位器混色入门项目
零件清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino Uno | 1 | |
| 共阴RGB LED(4引脚) | 1 | 任意共阴型均可 |
| 旋转电位器 10kΩ | 3 | 分别控制R/G/B亮度 |
| 按键开关 12mm | 1 | 电源开关 |
| 电阻 220Ω | 3 | LED限流,防烧毁 |
| 电阻 10kΩ | 1 | 按键上拉电阻 |
| 面包板、跳线 | 若干 |
适用人群与功能
适合Arduino初学者、艺术家、Web开发者、灯光爱好者。通过三个电位器独立调节红绿蓝三原色亮度,按键控制整体开关,串口实时输出RGB数值(0-255),便于记录喜欢的颜色代码用于代码/设计。
电路连接
- RGB LED三色引脚 → Arduino PWM引脚 9(蓝)、10(绿)、11(红),各串联220Ω电阻
- 共阴极 → GND
- 三个电位器中间抽头 → A0(红)、A1(绿)、A2(蓝),两端接5V/GND
- 按键一脚 → D7,另一脚 → GND,D7接10kΩ上拉至5V(或用内部上拉)
原理图请参考项目附件。
代码要点
const int redPin=11, greenPin=10, bluePin=9;
const int redPot=A0, greenPot=A1, bluePot=A2;
const int BUTTON=7;
int state=0, val=0, old_val=0;
void setup() {
pinMode(redPin,OUTPUT); pinMode(greenPin,OUTPUT); pinMode(bluePin,OUTPUT);
pinMode(BUTTON,INPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(BUTTON);
if (val==HIGH && old_val==LOW) { state = 1-state; delay(10); } // 按键翻转
old_val = val;
int r = analogRead(redPot)/4; // 10bit→8bit
int g = analogRead(greenPot)/4;
int b = analogRead(bluePot)/4;
if (state==1) {
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
Serial.print("RGB("); Serial.print(r); Serial.print(",");
Serial.print(g); Serial.print(","); Serial.print(b); Serial.println(")");
} else {
analogWrite(redPin,0); analogWrite(greenPin,0); analogWrite(bluePin,0);
}
delay(50);
}
玩法建议
- 上电后先按按键开启,再转动电位器观察混色效果
- 全开为白光;关闭某一路可得黄(无蓝)、青(无红)、洋红(无绿)
- 记录串口输出的RGB值,直接用于代码、CSS、灯光控制器
- 进阶:增加预设颜色按钮、EEPROM存储、OLED显示当前色值、蓝牙/手机APP控制
常见问题
- LED不亮:检查共阴极接地、限流电阻、PWM引脚号
- 颜色不对:确认R/G/B引脚与电位器通道对应
- 按键失灵:检查上拉电阻、去抖动延时、引脚模式
制造工艺
- 自制LUMAZOID:基于Arduino的音乐可视化灯光控制器
- 手势控制 RGB 台灯 —— 交互式免手操作照明
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- 从零构建智能 Arduino 四足机器人:完整指南
- DIY Arduino 电子波疗设备 - 基于拉德尼克疗法的 EMR 治疗仪
- 户外DMX控制RGB投光灯:低成本高性能舞台灯光DIY方案
- Arduino RGB 颜色混合器 – 分步制作教程
- 动感音乐灯光秀 —— Arduino Nano 驱动 NeoPixel 打造新年视听盛宴
- DIY LED 轮盘赌游戏机 —— Arduino Nano 打造单人桌面街机
- Arduino 智能自动停车场系统:红外检测 + 舵机闸门 + LED 余位显示
- Arduino 超声波测距仪:HC-SR04 量程探测器
- MSGEQ7 音频可视化 RGB 灯带背光:电视/桌面氛围灯 DIY