Bewegungsgesteuerter RGB-LED-Farbwechsler – Arduino-Projekt
Komponenten und Zubehör
| SparkFun APDS-9960 (Gesten-, Näherungs-, Farb- und Lichtsensor) | × | 1 |
| Arduino UNO | × | 1 |
| RGB-LED (Common Cathode, diffuses Gehäuse) | × | 1 |
| Widerstand 4,75 kΩ | × | 1 |
| Jumper-Kabel | × | 1 Set |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Dieses Projekt ermöglicht es Ihnen, die Kraft Ihrer Bewegungen zu nutzen, um eine RGB-LED zu steuern. Sie benötigen den SparkFun APDS-9960 und eine Common-Cathode-RGB-LED (nicht Common Anode!). Verwenden Sie ein 5-V-Arduino-Board mit 4,7-kΩ-Widerständen, da der Sensor das I2C-Protokoll nutzt. Schließen Sie alles gemäß dem Schaltplan an.
Im Code sind bereits 6 Farben vordefiniert. Die Standardsteuerung lautet:
- Wischen nach oben: LED einschalten
- Wischen nach unten: LED ausschalten
- Wischen nach rechts: Nächste Farbe
- Wischen nach links: Vorherige Farbe
Der Code lässt sich leicht für viele andere Projekte anpassen. Experimentieren Sie frei und erstellen Sie weitere tolle Projekte!

Code
Arduino-Code (C/C++)
#include#include // Pins #define APDS9960_INT 2 // Muss ein Interrupt-Pin sein // LED-Pins (PWM-fähig) int red_pin = A0; int green_pin = A1; int blue_pin = A2; int onOff_flag = 0; int colorNumber = 0; SparkFun_APDS9960 apds = SparkFun_APDS9960(); int isr_flag = 0; void setup() { pinMode(APDS9960_INT, INPUT); Serial.begin(9600); Serial.println(F("--------------------------------")); Serial.println(F("SparkFun APDS-9960 - GestureTest")); Serial.println(F("--------------------------------")); attachInterrupt(0, interruptRoutine, FALLING); if (apds.init()) { Serial.println(F("APDS-9960 Initialisierung abgeschlossen")); } else { Serial.println(F("Fehler bei APDS-9960 Initialisierung!")); } if (apds.enableGestureSensor(true)) { Serial.println(F("Gestensensor läuft nun")); } else { Serial.println(F("Fehler bei Gestensensor-Initialisierung!")); } pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); analogWrite(A0, 0); analogWrite(A1, 0); analogWrite(A2, 0); } void loop() { if (isr_flag == 1) { detachInterrupt(0); handleGesture(); isr_flag = 0; attachInterrupt(0, interruptRoutine, FALLING); } if (onOff_flag == 1) { switch (colorNumber) { case 0: // Rot Serial.println("rot"); analogWrite(red_pin, 255); analogWrite(green_pin, 0); analogWrite(blue_pin, 0); break; case 1: // Babyblau Serial.println("baby blue"); analogWrite(red_pin, 255); analogWrite(green_pin, 153); analogWrite(blue_pin, 204); break; case 2: // Dunkelblau Serial.println("dark blue"); analogWrite(red_pin, 100); analogWrite(green_pin, 0); analogWrite(blue_pin, 170); break; case 3: // Grün Serial.println("grün"); analogWrite(red_pin, 0); analogWrite(green_pin, 255); analogWrite(blue_pin, 0); break; case 4: // Blau Serial.println("blau"); analogWrite(red_pin, 0); analogWrite(green_pin, 0); analogWrite(blue_pin, 255); break; case 5: // Violett Serial.println("violett"); analogWrite(red_pin, 191); analogWrite(green_pin, 0); analogWrite(blue_pin, 255); break; } } else { analogWrite(red_pin, 0); analogWrite(green_pin, 0); analogWrite(blue_pin, 0); } delay(1000); } void interruptRoutine() { isr_flag = 1; } void handleGesture() { if (apds.isGestureAvailable()) { switch (apds.readGesture()) { case DIR_UP: Serial.println("UP"); onOff_flag = 1; break; case DIR_DOWN: Serial.println("DOWN"); onOff_flag = 0; break; case DIR_LEFT: Serial.println("LEFT"); if (onOff_flag == 1) { if (colorNumber > 0) colorNumber--; else colorNumber = 5; Serial.println(colorNumber); } break; case DIR_RIGHT: Serial.println("RIGHT"); if (onOff_flag == 1) { if (colorNumber < 5) colorNumber++; else colorNumber = 0; Serial.println(colorNumber); } break; case DIR_NEAR: Serial.println("NEAR"); break; case DIR_FAR: Serial.println("FAR"); break; default: Serial.println("NONE"); } } }
Schaltplan
Genau wie abgebildet verbinden.

Herstellungsprozess
- Bewegungsgesteuerter AWS IoT Button mit Raspberry Pi, PIR-Sensor und MQTT
- Bluetooth-gesteuerter Raspberry Pi Roboter mit Audio-Feedback bauen
- Gesteuerter RGB-Tischlampe – Interaktive, berührungslose Beleuchtung
- LEDs mit Alexa über Raspberry Pi steuern – Einfache Schritt-für-Schritt-Anleitung
- Altes RC-Auto per Xbox-Controller & Arduino zum Joystick-Fahrzeug umbauen
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- Sprachgesteuerter Roboter mit Arduino Nano bauen
- Intelligente, bewegungsaktivierte Wasserpistole mit Arduino Nano
- PiBot: Arduino-gesteuerter Klavierroboter für präzise Musikwiedergabe
- Arduino RGB-LED-Farbmischer – Einsteigerfreundliches DIY-Projekt