SOMMAIRE ►
Le contrôle d’une bande LED de 12 volts via l’Arduino peut se faire avec un module relais ou un transistor – les broches de l’Arduino ne sortent que 5 Volts. Dans le premier cas, un cliquetis se fait entendre lorsque le relais magnétique est activé ou désactivé. De plus, un relais ne permettra pas d’obtenir un effet de gradation douce des lumières. Voyez comment connecter et piloter une bande LED à un microcontrôleur pour créer un éclairage intelligent.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
- bande LED 12v
- сapteur de mouvement
- transistor ou module relais
- breadboard
- fils de connexion
Matériel supplémentaire sur ce sujet:
Comment branchement la bande LED à l’Arduino

Dans l’image, nous avons présenté la première option pour connecter la bande LED à l’Arduino: via un transistor. Connexion par relais et avec сapteur de mouvement, voir ci-dessous. Un transistor bipolaire ou à effet de champ permet d’allumer la bande de LED en douceur et de réguler la luminosité de la lumière. Il est possible d’utiliser une bande LED de 5 volts ou 12 volts. Assemblez le circuit et chargez l’exemple de code suivant dans la carte.
Programme Arduino: Contrôle allumage bande led en douceur
void setup() { pinMode(11, OUTPUT); } void loop() { // allumez les lumières en douceur for (int i=0; i<=255; i++) { analogWrite(11, i); delay(5); } // éteindre les lumières en douceur for (int i=255; i>=0; i--) { analogWrite(11, i); delay(5); } }
Explication du code pour contrôle bande led en douceur:
- nous utilisons la broche 11 avec un signal PWM pour la commutation douce de la bande LED;
- modifier la fonction delay pour changer la vitesse de commutation.

L’exemple suivant montre la possibilité d’utiliser un détecteur de mouvement pour allumer automatiquement la lumière. La bande de LED de l’Arduino ne s’éteint pas immédiatement, mais 10 secondes (10000 millisecondes) après que le capteur ait cessé de détecter un mouvement dans la pièce. Assemblez le circuit avec le module relais comme dans l’image ci-dessus et chargez le programme dans le microcontrôleur Arduino Uno.
Programme: Contrôle allumage bande LED avec module relais
unsigned long counttime; byte w = 1; #define LED 12 #define PIR 2 void setup() { pinMode(LED, OUTPUT); pinMode(PIR, INPUT); } void loop() { delay(200); // s'il y a du mouvement, allumez les lumières if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 0; } // s'il n'y a pas de mouvement - entrer dans while if (digitalRead(PIR) == LOW) { counttime = millis(); w = 1; } while (w == 1) { // si 10 secondes se sont écoulées, éteindre la lumière if (millis() - counttime > 10000) { digitalWrite(LED, LOW); w = 0; } // s'il y a un mouvement - redémarrer le compteur if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; counttime = millis(); } } }
Explication du code pour contrôle bande led avec module relais:
- dans l’expression if (millis() – counttime < 10000) vous pouvez mettre n’importe quelle valeur en millisecondes à laquelle la lumière ne s’éteindra pas;
- la fonction delay(200); peut affecter la vitesse de réponse du capteur, mais vous permet de décharger légèrement le processeur. La fonction peut être supprimée du code.

Dans l’exemple suivant, nous allons utiliser un capteur de mouvement et un transistor pour permettre à la bande de LED de l’Arduino de s’allumer en douceur. Le code utilisera plusieurs cycles de temps afin que la lumière ne s’éteigne pas immédiatement, mais 10 secondes après que le capteur ait cessé de détecter un mouvement dans la pièce. Utilisez un transistor de puissance appropriée, rappelez-vous qu’un mètre de bande LED consomme 1 ampère.
Programme: Contrôle bande LED avec сapteur de mouvement
unsigned long counttime; byte w = 2; #define LED 11 #define PIR 2 void setup() { pinMode(LED, OUTPUT); pinMode(PIR, INPUT); } void loop() { delay(200); // s'il y a du mouvement, allumez la lumière en douceur et passez en (w == 1) if (digitalRead(PIR) == HIGH) { for (int i = 0; i <= 255; i++) { analogWrite(LED, i); delay(5); } w = 1; } while (w == 1) { delay(200); // s'il n'y a pas de mouvement, aller dans la boucle while (w == 0) if (digitalRead(PIR) == LOW) { counttime = millis(); w = 0; } } while (w == 0) { delay(200); // s'il n'y a pas de mouvement pendant 10 sec, éteignez la lumière en douceur if (millis() - counttime > 10000) { for (int i = 255; i >= 0; i--) { analogWrite(LED, i); delay(5); } w = 2; } // si un mouvement est détecté, entrer dans (w == 1) sans éteindre la lumière if (digitalRead(PIR) == HIGH) { w = 1; } } }
Explication du code contrôle bande led avec сapteur de mouvement:
- dans l’expression if (millis() – counttime < 10000) vous pouvez mettre n’importe quelle valeur en millisecondes à laquelle la lumière ne s’éteindra pas;
- la fonction delay(200); peut affecter la vitesse de réponse du capteur, mais vous permet de décharger légèrement le processeur. La fonction peut être supprimée du code.








,Comment commander un ruban led WS2813 ou SK6812, 4 fils (RGBW) ?
Merci.