ESP32 - LED qui s'estompe

Ce tutoriel vous explique comment faire varier l'intensité d'une LED en utilisant l'ESP32 et MicroPython. En détail, nous apprendrons :

LED en fondu sur ESP32 MicroPython

Préparation du matériel

1×Module de développement ESP32 ESP-WROOM-32
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour ESP32
1×Recommandé: Breakout Expansion Board for ESP32
1×Recommandé: Répartiteur d'alimentation pour ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 (ESP32 inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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.

Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.

À propos de la DEL

Schéma des broches

Une LED a deux broches métalliques.

  • Broche négative (-) : connectez-la à la masse (0 V).
  • Broche positive (+) : utilisez-la pour contrôler l'état de la LED.
Schéma des broches de la LED

Comment cela fonctionne

Après avoir connecté le côté négatif, aussi appelé la cathode, à la masse (GND) :

  • Si vous connectez la masse (GND) au pôle positif de la LED, la LED s'éteindra.
  • Si vous connectez l'alimentation (VCC) au pôle positif de la LED, la LED s'allumera.
  • En utilisant un signal de modulation de largeur d'impulsion (PWM) sur le pôle positif de la LED, vous pouvez modifier son intensité lumineuse. La valeur PWM peut être comprise entre 0 et 255. La LED brille davantage avec une valeur PWM plus élevée et moins avec une valeur plus basse.
  • Si la valeur PWM est 0, la LED s'éteint, comme si elle était connectée à la masse (GND).

Si la valeur PWM est 255, la LED est complètement allumée, tout comme si elle était connectée directement à VCC.

Comment fonctionne une LED

※ Note:

Pour la plupart des LEDs, vous devez connecter une résistance du côté positif (anode) à l'alimentation. La valeur de la résistance dépend des exigences des LEDs.

ESP32 - Faire varier une LED

Pour ajuster la luminosité d'une LED avec l'ESP32, utilisez des broches qui produisent un signal PWM. Tout d'abord, connectez la broche positive (+) de la LED à une broche de l'ESP32. Puis, reliez la broche négative (-) de la LED à la masse (GND). Ensuite, configurez la broche choisie sur l'ESP32 pour générer un signal PWM.

Diagramme de câblage

Schéma de câblage LED ESP32 MicroPython

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

Code MicroPython pour ESP32

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython 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-micropython/esp32-micropython-fade-led */ from machine import Pin, PWM from time import sleep # Define pin LED_PIN = 18 # The ESP32 pin GPIO18 connected to the LED # Initialize PWM on the LED pin led = PWM(Pin(LED_PIN)) led.freq(1000) # Set the PWM frequency to 1kHz # Variables to control the LED brightness brightness = 0 # How bright the LED is fade_step = 5 # How many points to fade the LED by # Main loop while True: # Set the brightness of the LED led.duty_u16(int(brightness * 4095 / 255)) # Convert 0-255 range to 0-4095 # 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 or brightness >= 255: fade_step = -fade_step # Wait for 30 milliseconds to see the dimming effect sleep(0.03)

Étapes rapides

Voici des instructions sur la façon de configurer et d’exécuter votre code MicroPython sur l’ESP32 en utilisant l’IDE Thonny :

  • Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
  • Confirmez que le firmware MicroPython est chargé sur votre carte ESP32.
  • Si c'est la première fois que vous utilisez un ESP32 avec MicroPython, consultez le guide ESP32 - Premiers pas. pour des instructions étape par étape.
  • Connectez la carte ESP32 à la LED selon le schéma fourni.
  • Connectez la carte ESP32 à votre ordinateur avec un câble USB.
  • Ouvrez l'IDE Thonny sur votre ordinateur.
  • Dans l'IDE Thonny, allez dans Outils Options.
  • Sous l'onglet Interpréteur, choisissez MicroPython (ESP32) dans le menu déroulant.
  • Assurez-vous que le port correct est sélectionné. L'IDE Thonny le détecte généralement automatiquement, mais vous devrez peut-être le sélectionner manuellement (comme COM12 sur Windows ou /dev/ttyACM0 sur Linux).
  • Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
  • Enregistrez le code sur votre ESP32 en faisant:
    • En cliquant sur le bouton Enregistrer ou en appuyant sur Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, choisissez périphérique MicroPython.
    • Nommez le fichier main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
  • Observez la LED pour voir comment elle réagit.

Explication du code

L'explication se trouve dans les commentaires en haut du code MicroPython ESP32.

※ Note:

Dans l’exemple, nous avons utilisé une fonction appelée sleep() pour ajuster lentement la luminosité. Cependant, cette fonction rend le changement de luminosité moins fluide et empêche le reste du programme de s’exécuter. Ensuite, nous apprendrons comment faire varier la luminosité en douceur tout en permettant au reste du programme de continuer à utiliser la bibliothèque LED de DIYables.

Comment réaliser un fondu en montée et en descente sur une LED

Grâce à la bibliothèque LED développée par DIYables, il est très facile d'obtenir un fondu de la LED. Vous pouvez ajuster le niveau de luminosité et la vitesse du fondu.

/* * Ce code ESP32 MicroPython a été développé par newbiely.fr * Ce code ESP32 MicroPython 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-micropython/esp32-micropython-fade-led */ from DIYables_MicroPython_LED import LED, CTRL_ANODE, LED_IDLE led = LED(18, CTRL_ANODE) # create an LED object that attaches to pin GPIO18 is_faded_in = False while True: led.loop() # MUST call the led.loop() function in loop() if led.get_state() == LED_IDLE: if not is_faded_in: print("FADING IN") led.fade(0, 255, 3000) # fade in from 0 to 255 in 3000ms, fade immediately # led.fade(0, 255, 3000, 1000) # fade in from 0 to 255 in 3000ms, fade after 1 second is_faded_in = True else: print("FADING OUT") led.fade(255, 0, 3000) # fade out from 255 to 0 in 3000ms, fade immediately # led.fade(255, 0, 3000, 1000) # fade out from 255 to 0 in 3000ms, fade after 1 second is_faded_in = False

Étapes rapides

  • Dans l'IDE Thonny, allez dans Outils Gérer les paquets.
  • Recherchez “DIYables-MicroPython-LED” et trouvez la bibliothèque LED de DIYables.
  • Cliquez sur DIYables-MicroPython-LED puis cliquez sur le bouton Install pour installer la bibliothèque LED sur la carte ESP32.
Bibliothèque LED MicroPython pour ESP32
  • Copiez le code MicroPython fourni et collez-le dans l'éditeur de Thonny.
  • Enregistrez le code sur votre ESP32 en procédant comme suit :
    • Cliquer sur le bouton Enregistrer ou appuyer sur Ctrl+S.
    • Dans la boîte de dialogue d'enregistrement, choisissez périphérique MicroPython.
    • Nom du fichier main.py.
  • Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script.
  • Vérifiez l'état de la LED.

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 !