手势控制 RGB 台灯 —— 交互式免手操作照明
零部件与物料
| Arduino UNO | ×1 |
| SmartElex RLS-08 模拟/数字巡线传感器阵列 | ×1 |
| 跳线(通用) | ×1 |
| LED 灯带,NeoPixel 数字 RGB | ×1 |
所需工具与设备
- 热熔胶枪(通用)
应用与在线服务
- Arduino IDE
项目简介
我们见过各种情景灯和 RGB 灯,大多通过按钮或遥控器交互。本项目制作一款手势控制 RGB 台灯,仅需简单的挥手手势即可切换颜色。这是一个基于 Arduino Uno 开发板与 红外阵列传感器 的互动艺术项目,趣味性强,适合教学演示。
步骤 1:准备材料
所有材料在本地市场或网店均可购买:
- Arduino Uno
- 红外传感器阵列(8 路)
- WS2812B 可寻址 RGB LED
- 5V 2A 电源适配器
步骤 2:原理介绍
该传感器由 8 个红外接近传感器组成,可输出 8 路模拟/数字信号。利用它检测手部移动方向,进而控制 LED 变色。Arduino 读取传感器数据并驱动 LED 灯带。
支持两种基础手势:
- 左滑
- 右滑
步骤 3:电路连接
红外传感器连接:
- GND → Arduino GND
- VCC → Arduino 5V
- 传感器 A~H 数字输出 → Arduino 数字引脚 4~11
LED 灯带连接:
- GND → Arduino GND
- 5V → Arduino Vin
- 数据输入 → Arduino 数字引脚 3
步骤 4:编写代码
使用 FastLED 库控制灯带并实现渐变效果。定义 90 颗 LED(可按实际修改),数据引脚为 3 号。主循环通过嵌套 if 判断传感器触发顺序,实现左/右滑切换色相。fadeall() 函数提供平滑过渡。
步骤 5:成品展示
(此处省略多张实物图片)
完整代码
#include <FastLED.h>
int a,b,c,d,e,f,g,h,j=0;
#define NUM_LEDS 90
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
void setup() {
for(int pin=4; pin<=11; pin++) pinMode(pin, INPUT);
LEDS.addLeds<WS2812,DATA_PIN,RGB>(leds,NUM_LEDS);
LEDS.setBrightness(84);
}
void fadeall() {
for(int i=0; i<NUM_LEDS; i++) leds[i].nscale8(250);
}
void loop() {
a=digitalRead(4); b=digitalRead(5); c=digitalRead(6); d=digitalRead(7);
e=digitalRead(8); f=digitalRead(9); g=digitalRead(10); h=digitalRead(11);
static uint8_t hue = 0;
// 左滑:传感器 A 后跟 B
if(a==1 && b==1) {
for(int i=4; i<55; i++) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
}
// 右滑:传感器 G 后跟 F
if(g==1 && f==1) {
for(int i=55; i>=4; i--) {
leds[i] = CHSV(hue++, 255, 255);
FastLED.show();
fadeall();
delay(10);
}
}
}
原理图
Fritzing 电路图展示了 8 个独立红外传感器或阵列传感器的连接方式。
制造工艺
- 蓝牙控制树莓派机器人:语音反馈功能构建指南
- 树莓派手势控制机器人:告别按键,挥手即达
- 通过树莓派用 Alexa 控制 LED - 简单分步指南
- 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
- SunGlass-BOT:基于 Arduino 的智能变色墨镜自制指南
- Arduino Mega 驱动 Wii Nunchuk 控制 6 自由度机械臂
- 智能无线开关控制器:Arduino + 433MHz 远程操控墙壁开关
- Arduino Nano 语音控制机器人:蓝牙 + 手机 APP 实现
- PiBot:Arduino驱动的88键钢琴机器人,精准演奏MIDI乐曲
- Arduino RGB LED调色器:三电位器混色入门项目
- 户外DMX控制RGB投光灯:低成本高性能舞台灯光DIY方案
- Arduino 电容式触控开关:一枚硬币点亮 LED 的极简 DIY