ESP32 - LED - Fondu

Ce tutoriel vous explique comment utiliser :

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×LED
1×220 ohm resistor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) ESP32 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 LED

LED comprend deux broches :

  • Broche de cathode (-) : connectez cette broche à GND (0V)
  • Broche d'anode (+) : sert à contrôler l'état de la LED
Brochage LED

Fonctionnement des LED

Après avoir connecté la cathode (-) à la masse :

  • Si nous connectons GND à l'anode (+), la LED est ÉTEINTE.
  • Si nous connectons VCC à l'anode (+), la LED est ALLUMÉE.
  • Si nous générons un signal PWM à la broche anode (+), la luminosité de la LED est proportionnelle au cycle de travail du PWM. Le cycle de travail du PWM varie de 0 à 255. Plus le cycle de travail du PWM est grand, plus la LED est lumineuse.
    • Si la valeur PWM est 0, cela équivaut à GND ⇒ la LED est ÉTEINTE.
    • Si la valeur PWM est 255, cela équivaut à VCC ⇒ la LED est ALLUMÉE à la luminosité maximale.
    Comment fonctionnent les LED

    ※ NOTE THAT:

    Habituellement, il faut une résistance pour protéger la LED de la surchauffe. La valeur de la résistance dépend des spécifications de la LED.

    ESP32 - estomper la LED

    Les broches de sortie numérique de l'ESP32 peuvent être programmées pour générer un signal PWM. En connectant la broche anode (+) de la LED à une broche de l'ESP32, la cathode (-) de la LED au GND, puis en programmant l'ESP32 pour modifier le rapport cyclique du PWM, nous pouvons estomper la LED.

Schéma de câblage entre le LED et l'ESP32

Schéma de câblage de la LED ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Comment programmer

  • Configurez une broche d'ESP32 comme une broche de sortie numérique en utilisant la fonction pinMode(). Par exemple, broche GPIO18 :
pinMode(18, OUTPUT);
  • Définissez la luminosité de la LED en générant un signal PWM avec un cycle de travail correspondant en utilisant la fonction analogWrite().
analogWrite(18, brightness);

Où la luminosité est une valeur de 0 à 255.

Code ESP32 - Exemple de Fondu Simple

Étapes rapides

  • Si c'est la première fois que vous utilisez ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Faites le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM.
  • Copiez le code ci-dessous et collez-le dans Arduino IDE.
/* * 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-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin GPIO18 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin GPIO18: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Compiler et télécharger le code sur la carte ESP32 en cliquant sur le bouton Upload sur l'IDE Arduino.
Téléversement de code Arduino IDE
  • Voyez la luminosité des LED

Explication du code ligne par ligne

Le code ESP32 ci-dessus contient des explications ligne par ligne. Veuillez lire les commentaires dans le code !

※ NOTE THAT:

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

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

/* * 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-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin GPIO18 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

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

/* * 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-fade */ #define LED_PIN 18 // ESP32 pin GPIO18 connected to LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin GPIO18 to be an output fadeStartTime = millis(); } // fade-out in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Vidéo

Références linguistiques

※ 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!