ESP32 - Bande de LED

Dans ce tutoriel, nous allons apprendre à programmer un ESP32 pour contrôler une bande LED afin qu'elle émette de la lumière.

Une bande LED peut être pilotée par un relais ou par un module MOSFET. Un relais ne fait qu'allumer et éteindre la lumière. Un module MOSFET l'allume et l'éteint aussi, et il peut également faire varier la bande à la luminosité que vous voulez. Nous allons apprendre à utiliser les deux façons.

À propos des bandes LED

Une bande LED, également connue sous le nom de ruban LED ou ruban à LED, est un circuit imprimé flexible avec des LED montées en surface qui émettent de la lumière. Ces bandes sont polyvalentes et couramment utilisées pour l'éclairage décoratif dans diverses applications. Les bandes LED se déclinent en une gamme de couleurs et sont souvent utilisées pour fournir un éclairage d'ambiance, un éclairage d'accentuation ou des effets d'éclairage décoratif.

Les bandes LED se déclinent en deux types principaux :

  • Bandes LED adressables : Dans ce type, la couleur et la luminosité de chaque LED individuelle sur la bande peuvent être contrôlées indépendamment. Cette capacité est due au fait que chaque LED se voit attribuer une adresse spécifique.
  • Bandes LED non adressables : En revanche, les bandes LED non adressables permettent de contrôler la couleur et la luminosité, mais ce contrôle s'applique uniformément à toutes les LED de la bande.

Ce tutoriel se concentrera sur les rubans de LED non adressables. Pour les rubans de LED adressables, veuillez consulter les tutoriels suivants :

Brochage de bande LED non adressable

La bande LED non adressable a deux types principaux :

  • Bande LED 1 couleur non adressable : Uniquement une couleur définie par le fabricant.
  • Bande LED RGB non adressable : toutes les couleurs.

Une bande LED 1 couleur non adressable a généralement deux broches :

  • Broche 12V/24V : doit être connectée à la broche positive de l'alimentation DC de 12V ou 24V
  • Broche GND : doit être connectée à la broche négative de l'alimentation DC de 12V ou 24V

Une bande LED RVB non adressable a généralement quatre broches :

  • Broche 12V/24V : doit être connectée à la broche positive de l'alimentation DC de 12V ou 24V
  • Broche R : Cette broche est utilisée pour contrôler la couleur rouge. Connecter cette broche à la broche négative de l'alimentation active la couleur rouge
  • Broche G : Cette broche est utilisée pour contrôler la couleur verte. Connecter cette broche à la broche négative de l'alimentation active la couleur verte
  • Broche B : Cette broche est utilisée pour contrôler la couleur bleue. Connecter cette broche à la broche négative de l'alimentation active la couleur bleue
Brochage de bande LED non adressable ESP32

Si vous préférez un module MOSFET à un relais, lisez d'abord le tutoriel ESP32 - Module MOSFET. Il explique les broches du module et comment il commute une charge 12V.

Relais ou module MOSFET pour une bande LED

Relais Module MOSFET
Contrôle de la lumière ON/OFF ON/OFF et luminosité (variation avec le PWM)
Bruit des clics silencieux
Commutation lente (millisecondes) très rapide, aucun scintillement visible
Durée de vie les contacts s'usent avec le temps aucune pièce mobile
Type de charge lumières CA ou CC bandes CC uniquement
Tension de la bande toute, dans les limites prévues environ 6V ou plus (les bandes 12V et 24V conviennent)
Isolation oui, bobine et contacts oui, optocoupleur PC817
À choisir pour un simple éclairage ON/OFF la variation, les effets de fondu, les commutations fréquentes

Pour une bande 12V ou 24V, le module MOSFET est généralement le meilleur choix, car vous pouvez faire varier la lumière en douceur. Une bande RGB a trois canaux de couleur (R, G et B), donc elle a besoin de trois modules MOSFET, un par couleur, de la même façon qu'elle a besoin de trois relais.

Nous allons apprendre à contrôler les deux types un par un avec l'ESP32.

Comment contrôler une bande LED 1 couleur non adressable.

Si une bande LED de 12V est alimentée par une alimentation de 12V, elle émet de la lumière. Pour contrôler une bande LED de 12V, nous devons utiliser un relais entre l'ESP32 et la bande LED de 12V. L'ESP32 peut contrôler la bande LED de 12V via le relais. Vous ne connaissez pas les relais, y compris leurs brochages, fonctionnalités et programmation ? Apprenez-en davantage sur les relais dans le ESP32 - Relais.

Schéma de câblage.

Schéma de câblage entre l'ESP32 et une bande de LED non adressable à une couleur.

Schéma de câblage de la bande LED 12V ESP32

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..

Schéma de câblage entre ESP32 et bande LED RVB non adressable.

Schéma de câblage de bande LED 12V ESP32

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code ESP32

Code ESP32 pour contrôler une bande LED non adressable à une couleur.

Le code ci-dessous allume et éteint la bande LED toutes les 5 secondes.

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-led-strip */ #define LED_STRIP_PIN 16 // The ESP32 pin GPIO16 controls to the LED strip via relay void setup() { Serial.begin(9600); // initialize ESP32 pins as digital output pins pinMode(LED_STRIP_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { Serial.println("The LED strip is turned on"); digitalWrite(LED_STRIP_PIN, HIGH); delay(5000); Serial.println("The LED strip is turned off"); digitalWrite(LED_STRIP_PIN, LOW); delay(5000); }

Code ESP32 pour contrôler une bande LED RVB non adressable.

Le code ci-dessous contrôle de manière répétée la couleur de la bande LED RVB (rouge, vert, bleu, jaune, magenta, cyan et blanc)

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-led-strip */ #define BLUE_PIN 23 // The ESP32 pin GPIO23 connects to the blue pin of LED strip via relay 1 #define RED_PIN 22 // The ESP32 pin GPIO22 connects to the red pin of LED strip via relay 2 #define GREEN_PIN 21 // The ESP32 pin GPIO21 connects to the green pin of LED strip via relay 3 void setup() { Serial.begin(9600); // initialize ESP32 pins as digital output pins pinMode(BLUE_PIN, OUTPUT); pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { Serial.println("The LED strip is turned red"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned green"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned blue"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned yellow"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned magenta"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned cyan"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned white"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez Installation du logiciel ESP32..
  • Réalisez le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble USB Type-C.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM approprié.
  • Connectez l'ESP32 au PC via un câble USB.
  • Ouvrez Arduino IDE, sélectionnez la bonne carte et le bon port.
  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE.
  • Cliquez sur le bouton Upload sur Arduino IDE pour charger le code sur l'ESP32.
  • Vérifiez l'état de la bande de LED.

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

Veuillez noter que, pour contrôler la luminosité et les autres couleurs d'une bande LED non adressable, nous devons utiliser le pilote L298N au lieu d'un relais.

Comment faire varier la bande LED avec un module MOSFET

Un module MOSFET est une autre façon simple de contrôler la luminosité d'une bande LED 1 couleur. L'ESP32 envoie un signal PWM, et la bande devient plus lumineuse ou plus faible.

Schéma de câblage entre l'ESP32, le module MOSFET et la bande LED 1 couleur

Schéma de câblage de l'ESP32, de la bande LED et du module MOSFET

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

  • GPIO18 de l'ESP32 va à la broche PWM du module, et GND de l'ESP32 va à la broche GND du module.
  • La broche 12V de la bande et le fil + de l'adaptateur 12V vont tous les deux à la borne +.
  • La broche GND de la bande va à la borne LOAD.
  • Le fil − de l'adaptateur 12V va à la borne −.

Une bande LED n'a pas de bobine, donc vous n'avez pas besoin de diode de roue libre (flyback).

Code ESP32 pour faire varier la bande LED

La bande brille à pleine luminosité pendant 2 secondes, puis reste éteinte pendant 2 secondes. Ensuite, elle devient plus lumineuse de 10% à 100%, puis plus faible de nouveau, par pas de 10%.

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-led-strip */ const int MOSFET_PIN = 18; // ESP32 GPIO18 connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

Étapes rapides

  • Préparez l'ESP32 et l'Arduino IDE comme dans les Étapes rapides du relais ci-dessus.
  • Câblez la bande, le module et l'adaptateur 12V comme indiqué, et gardez l'adaptateur débranché pour l'instant.
  • Téléversez le code sur l'ESP32.
  • Branchez l'adaptateur 12V.
  • Ouvrez le Moniteur Série et choisissez 9600 bauds.
  • Regardez la bande monter et descendre en luminosité, et lisez les niveaux dans le Moniteur Série.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Astuce : le module MOSFET a besoin d'une alimentation de bande d'environ 6V ou plus et fonctionne uniquement en CC. Pour les lumières CA, utilisez le relais.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !