Étape 1: Faites le circuit de base
En suivant le schéma de circuit ci-dessus, câbler une LED RGB et le détecteur de mouvement à l’Arduino (Remarque : vérifier la feuille de données pour votre détecteur de mouvement particulier avant toute connexion). Exécutez le code ci-dessous et confirmer que la LED se fait par les trois couleurs à l’unisson le détecteur de mouvement détecte un mouvement.
Vous pouvez ajuster le code pour changer la couleur de la LED et faire quelque modèle que vous aimez. Nôtre avait deux LEDs (simplement brancher à trois broches non utilisées du PWM) et a été fixée en alternance par le biais de couleurs froides (un jeu de LEDs passé entre bleu et rouge, l’autre situé entre vert et bleu).
(Comment le code fonctionne : en fait, le code est une version modifiée du code de Sparkfun pour utiliser une photorésistance contrôle LED. Si le détecteur de mouvement « voit » quelque chose, la tension chez les épis A0. Lorsque le code détecte ce spike, il exécute les LEDs par leurs couleurs et s’il n’y a aucun épi les LEDs s’éteint.)
CODE :
int lightPin = 0 ; en fait le capteur de mouvement
LED conduit connectées aux broches PWM
const int RED_LED_PIN = 9 ;
const int GREEN_LED_PIN = 10 ;
const int BLUE_LED_PIN = 11 ;
Utilisé pour stocker l’actuel niveau d’intensité des LEDs individuelles
int IntensiteRouge = 0 ;
int IntensiteVert = 0 ;
int IntensiteBleu = 0 ;
Longueur de temps que nous passons montrant chaque couleur
const int DISPLAY_TIME = 50 ; En millisecondes
void setup()
{
pinMode (ledPin1, sortie) ; définit l’axe conduit à la sortie
pinMode (ledPin2, sortie) ; définit l’axe conduit à la sortie
pinMode (ledPin3, sortie) ; définit l’axe conduit à la sortie
Serial.Begin(9600) ;
}
void loop()
{
Éclairement int = analogRead(lightPin) ; Lire le détecteur de mouvement
Serial.println(lightLevel) ;
Si (éclairement < 650) {//if voit le capteur de mouvement (pointes de tension seuil)
Cycle de couleur du rouge grâce au vert
(Dans cette boucle, nous nous déplaçons de 100 % de rouge, de vert à rouge de 0 % à 0 %, 100 % verte)
pour (IntensiteVert = 0; IntensiteVert < = 255 ; IntensiteVert += 5) {}
IntensiteRouge = 255-IntensiteVert ;
analogWrite (GREEN_LED_PIN, IntensiteVert) ;
analogWrite (RED_LED_PIN, IntensiteRouge) ;
Delay(DISPLAY_TIME) ;
}
Cycle de couleur du vert au bleu
(Dans cette boucle, nous nous déplaçons verte à 100 %, 0 % de bleu à vert 0 %, 100 % bleu)
pour (IntensiteBleu = 0; IntensiteBleu < = 255 ; IntensiteBleu += 5) {}
IntensiteVert = 255-IntensiteBleu ;
analogWrite (BLUE_LED_PIN, IntensiteBleu) ;
analogWrite (GREEN_LED_PIN, IntensiteVert) ;
Delay(DISPLAY_TIME) ;
}
Cycle cycle du bleu grâce au rouge
(Dans cette boucle, nous nous déplaçons de 100 % bleu, de rouge à bleu de 0 % à 0 %, 100 % rouge)
pour (IntensiteRouge = 0; IntensiteRouge < = 255 ; IntensiteRouge += 5) {}
IntensiteBleu = 255-IntensiteRouge ;
analogWrite (RED_LED_PIN, IntensiteRouge) ;
analogWrite (BLUE_LED_PIN, IntensiteBleu) ;
Delay(DISPLAY_TIME) ;
}
}
else {//if le capteur ne voit rien
analogWrite (RED_LED_PIN, 0) ;
analogWrite(BLUE_LED_PIN,0) ;
analogWrite(GREEN_LED_PIN,0) ;
digitalWrite(ledPin1,LOW) ;
digitalWrite (ledPin2, basse) ;
digitalWrite (ledPin3, basse) ;
}
}