ESP8266 - LED - Estomper

Ce tutoriel vous explique comment programmer l'ESP8266 pour estomper une LED. Nous passerons en revue trois exemples et comparerons les différences entre eux :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×LED
1×220 ohm resistor
1×Breadboard
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

#À propos des LED

Brochage de la LED

La LED a deux broches :

  • Broche cathode (-) : doit être connectée au GND (0V)
  • Broche anode (+) : utilisée pour contrôler l'état de la LED
Brochage LED

Comment ça fonctionne

Une fois que la cathode (-) a été connectée à la masse (GND) :

  • Connecter GND à l'anode (+) éteindra la LED.
  • Connecter VCC à l'anode (+) allumera la LED.
  • Générer un signal PWM à l'anode (+) ajustera la luminosité de la LED, selon la valeur du PWM. Cette valeur peut varier de 0 à 255, une valeur plus élevée résultant en une LED plus lumineuse et une valeur plus faible la rendant plus sombre.
  • Si la valeur PWM est 0, cela équivaut à connecter GND, donc la LED sera éteinte.
  • Si la valeur PWM est 255, cela équivaut à connecter VCC, donc la LED sera totalement allumée.
Comment fonctionnent les LED

※ NOTE THAT:

Pour la plupart des LED, une résistance doit être placée entre l'anode (+) et VCC. La valeur de cette résistance est déterminée par les spécifications de la LED.

ESP8266 - estomper la LED

Certains des broches de l'ESP8266 peuvent être programmées pour produire un signal PWM. En connectant la broche anode (+) de la LED à une broche de l'ESP8266, la cathode (-) au GND, et en programmant la broche de l'ESP8266 pour générer du PWM, nous pouvons estomper la LED.

Diagramme de câblage

Schéma de câblage de la LED ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Comment programmer

  • Définissez la broche d'un ESP8266 en mode sortie numérique avec la fonction pinMode(). Par exemple, cela peut être fait pour la broche D5 :
pinMode(D5, OUTPUT);
  • Ajustez la luminosité de la LED en créant un signal PWM avec la fonction analogWrite().
analogWrite(D5, brightness);

La luminosité peut varier de 0 à 255.

Code ESP8266 - Exemple de Fondu de l'IDE Arduino

Étapes rapides

Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Connectez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple, NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Connectez l'ESP8266 à votre ordinateur avec un câble USB.
  • Ouvrez l'Arduino IDE, et sélectionnez la bonne carte et le bon port.
  • Copiez le code ci-dessous et collez-le dans l'Arduino IDE.
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-led-fade */ #define LED_PIN D5 // The ESP8266 pin connected to the LED int brightness = 0; // how bright the LED is int fade_step = 5; // how many points to fade the LED by // The setup function runs once on reset or power-up void setup() { // Configure the ESP8266 pin as a digital output pin pinMode(LED_PIN, OUTPUT); } // The loop function repeats indefinitely. void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fade_step; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code sur la carte ESP8266.
Téléversement de code Arduino IDE
  • Découvrez la luminosité de la LED.

Explication du code

Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !

※ NOTE THAT:

L'exemple ci-dessus utilise la fonction delay() pour réaliser un fondu d'entrée et de sortie. Cela provoque cependant un fondu saccadé de la LED et bloque l'exécution d'autres codes. Dans les sections suivantes, nous apprendrons à réaliser un fondu d'entrée et de sortie en douceur sans interrompre les autres codes, en utilisant la fonction millis().

Comment réaliser un fondu d'entrée d'une LED sur une période sans utiliser delay()

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-led-fade */ #define LED_PIN D5 // The ESP8266 pin connected to the LED unsigned long FADE_PEDIOD = 3000; // fade time is 3 seconds unsigned long start_time; // The setup function runs once on reset or power-up void setup() { // Configure the ESP8266 pin as a digital output pin pinMode(LED_PIN, OUTPUT); start_time = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // restart fade again } }

Comment estomper une LED sur une période sans utiliser delay()

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-led-fade */ #define LED_PIN D5 // The ESP8266 pin connected to the LED unsigned long FADE_PEDIOD = 3000; // fade time is 3 seconds unsigned long start_time; // The setup function runs once on reset or power-up void setup() { // Configure the ESP8266 pin as a digital output pin pinMode(LED_PIN, OUTPUT); start_time = millis(); } // fade-out in loop, and restart after finishing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // restart fade again } }

Vidéo

Savoirs supplémentaires

  • La fonction analogWrite() dans ESP8266 peut générer un signal PWM, qui permet à une LED de s'estomper. Cependant, si une fonction personnalisée est créée avec des connaissances avancées, elle peut générer un signal PWM basse fréquence, entraînant le clignotement de la LED au lieu de son estompage.
  • En résumé, les signaux PWM peuvent être utilisés dans ESP8266 à diverses fins, telles que le contrôle des moteurs servo, des moteurs à courant continu, la production de son avec un buzzer piézo, l'estompage des LED et le clignotement des LED.

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!