Changeur de couleur RGB activé par mouvement – Projet Arduino
Composants et fournitures
| SparkFun APDS-9960 (capteur gestuel, proximité, lumière RVB) | × | 1 |
| Fils de connexion (génériques) | × | 1 |
| Arduino UNO | × | 1 |
| Résistance 4,75 kΩ | × | 1 |
| LED RVB diffuse cathode commune | × | 1 |
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Ce projet vous permet d'exploiter la puissance de vos mouvements pour contrôler une LED RVB. Vous aurez besoin du SparkFun APDS-9960 et d'une LED RVB à cathode commune (pas anode). Utilisez une carte Arduino 5V avec des résistances de 4,7 kΩ, car ce capteur utilise le protocole I2C. Connectez selon le schéma. Vous pouvez ajouter des couleurs personnalisées dans le code ; j'en ai déjà mis 6. Les commandes par défaut sont :
- Balayage vers le haut : allumer
- Balayage vers le bas : éteindre
- Balayage vers la droite : couleur suivante
- Balayage vers la gauche : couleur précédente
Ce code peut être adapté à de nombreux autres types de projets ! N'hésitez pas à expérimenter et créer vos propres projets. Bon making !

Code
Code Arduino C/C++
#include#include // Broches #define APDS9960_INT 2 // Doit être une broche d'interruption // Constantes int red_pin = A0; int green_pin = A1; int blue_pin = A2; int onOff_flag = 0; int colorNumber = 0; // Variables globales 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 - Test Gestuel")); Serial.println(F("--------------------------------")); attachInterrupt(0, interruptRoutine, FALLING); if ( apds.init() ) { Serial.println(F("Initialisation APDS-9960 terminée")); } else { Serial.println(F("Erreur lors de l'initialisation APDS-9960 !")); } if ( apds.enableGestureSensor(true) ) { Serial.println(F("Capteur gestuel en cours d'exécution")); } else { Serial.println(F("Erreur lors de l'initialisation du capteur gestuel !")); } 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: Serial.println("rouge"); analogWrite(red_pin, 255); analogWrite(green_pin, 0); analogWrite(blue_pin, 0); break; case 1: Serial.println("bleu clair"); analogWrite(red_pin, 255); analogWrite(green_pin, 153); analogWrite(blue_pin, 204); break; case 2: Serial.println("bleu foncé"); analogWrite(red_pin, 100); analogWrite(green_pin, 0); analogWrite(blue_pin, 170); break; case 3: Serial.println("vert"); analogWrite(red_pin, 0); analogWrite(green_pin, 255); analogWrite(blue_pin, 0); break; case 4: Serial.println("bleu"); analogWrite(red_pin, 0); analogWrite(green_pin, 0); analogWrite(blue_pin, 255); break; case 5: Serial.println("violet"); 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("HAUT"); onOff_flag = 1; break; case DIR_DOWN: Serial.println("BAS"); onOff_flag = 0; break; case DIR_LEFT: Serial.println("GAUCHE"); if(onOff_flag == 1){ if(colorNumber > 0) colorNumber--; else colorNumber = 5; Serial.println(colorNumber); } break; case DIR_RIGHT: Serial.println("DROITE"); if(onOff_flag == 1){ if(colorNumber < 5) colorNumber++; else colorNumber = 0; Serial.println(colorNumber); } break; case DIR_NEAR: Serial.println("PROCHE"); break; case DIR_FAR: Serial.println("LOIN"); break; default: Serial.println("AUCUN"); } } }
Schéma
Connectez comme indiqué.
Processus de fabrication
- Construire un bouton IoT AWS contrôlé par mouvement avec Raspberry Pi, capteur PIR et MQTT
- Construire un robot Raspberry Pi piloté par Bluetooth avec retour audio
- Lampe de table RGB à commande gestuelle – Éclairage interactif, mains libres
- Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas
- Transformez une vieille voiture RC en véhicule piloté au joystick avec Arduino
- Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
- Robot commandé par la voix avec Arduino Nano et Bluetooth
- Pistolet à eau intelligent à détection de mouvement avec Arduino Nano
- PiBot : Robot pianiste Arduino pour performance musicale de précision