ESP32 - Faire clignoter plusieurs LED

Ce guide vous montre comment mettre en place et écrire du code MicroPython pour un ESP32 afin de faire clignoter plusieurs LED à des vitesses différentes sans utiliser la fonction time.sleep(). Il propose les instructions de deux manières différentes :

ESP32 MicroPython fait clignoter plusieurs LED

Nous expliquerons comment faire cela avec trois LEDs. Vous pouvez facilement l'ajuster pour deux, quatre ou plus de LEDs.

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

Si vous n'êtes pas encore familiarisé avec les LED (y compris leur brochage, leur fonctionnement, l'interfaçage avec l'ESP32 et l'écriture de code MicroPython pour l'ESP32 afin d'interagir avec elles), vous pouvez en savoir plus sur :

Diagramme de câblage

Schéma de câblage de plusieurs LED ESP32 MicroPython

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

Code MicroPython ESP32 - Faire clignoter plusieurs LED

Pour faire clignoter plusieurs LEDs en même temps, n'utilisez pas la fonction time.sleep() car elle bloque l'exécution du reste du code. Utilisez plutôt l'horodatage pour gérer le timing.

Si vous débutez en programmation et que vous avez du mal à gérer le minutage du clignotement de plusieurs LEDs, la DIYables_MicroPython_LED library facilite les choses en gérant le minutage pour vous. Cela signifie que vous n'aurez pas à vous soucier des problèmes de minutage lors de l'utilisation de la bibliothèque.

/* * 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-blink-multiple-led */ from DIYables_MicroPython_LED import LED, LED_DELAY, LED_BLINKING, LED_IDLE, CTRL_ANODE # Define LED pins PIN_LED_1 = 16 # The ESP32 pin connected to the LED 1 (GPIO16) PIN_LED_2 = 17 # The ESP32 pin connected to the LED 2 (GPIO17) PIN_LED_3 = 18 # The ESP32 pin connected to the LED 3 (GPIO18) # Create LED objects that attach to the specified pins led1 = LED(PIN_LED_1, CTRL_ANODE) led2 = LED(PIN_LED_2, CTRL_ANODE) led3 = LED(PIN_LED_3, CTRL_ANODE) led1.blink(500, 500) # 500ms ON, 500ms OFF, blink immediately led2.blink_with_duration(100, 100, 5000) # 100ms ON, 100ms OFF, blink for 5 seconds, blink immediately led3.blink_n_times(250, 750, 10) # 250ms ON, 750ms OFF, repeat 10 times, blink immediately # Main loop while True: led1.loop() # MUST call the led1.loop() function led2.loop() # MUST call the led2.loop() function led3.loop() # MUST call the led3.loop() function # DO OTHER TASKS HERE # DO SOMETHING HERE

Étapes rapides

Voici les instructions pour configurer et exécuter votre code MicroPython sur l'ESP32 en utilisant l'IDE Thonny :

  • Assurez-vous que Thonny IDE est installé sur votre ordinateur.
  • Vérifiez 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 aux LEDs comme indiqué dans le diagramme.
  • 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 bon port 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).
  • Dans Thonny IDE, allez à Outils Gérer les packages.
  • 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:
    • Cliquez sur le bouton Enregistrer ou appuyez 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.
  • Vérifiez si les LEDs sont allumées ou éteintes.

Code MicroPython ESP32 - Faire clignoter plusieurs LEDs en utilisant un tableau

Nous pouvons améliorer le code précédent en utilisant un tableau de LEDs. Le code ci-dessous utilise ce tableau pour gérer des objets LED.

/* * 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-blink-multiple-led */ from DIYables_MicroPython_LED import LED, LED_DELAY, LED_BLINKING, LED_IDLE, CTRL_ANODE # Define LED pins PIN_LED_1 = 16 # The ESP32 pin connected to the LED 1 (GPIO16) PIN_LED_2 = 17 # The ESP32 pin connected to the LED 2 (GPIO17) PIN_LED_3 = 18 # The ESP32 pin connected to the LED 3 (GPIO18) # Create an array of LED objects led_array = [ LED(PIN_LED_1, CTRL_ANODE), # create ezLED object that attach to pin PIN_LED_1 LED(PIN_LED_2, CTRL_ANODE), # create ezLED object that attach to pin PIN_LED_2 LED(PIN_LED_3, CTRL_ANODE) # create ezLED object that attach to pin PIN_LED_3 ] led_array[0].blink(500, 500) # 500ms ON, 500ms OFF, blink immediately led_array[1].blink_with_duration(100, 100, 5000) # 100ms ON, 100ms OFF, blink for 5 seconds, blink immediately led_array[2].blink_n_times(250, 750, 10) # 250ms ON, 750ms OFF, repeat 10 times, blink immediately # Function to print the state of an LED def print_state(state, led_index): if state == LED_DELAY: print(f"LED {led_index + 1} DELAYING") elif state == LED_BLINKING: print(f"LED {led_index + 1} BLINKING") elif state == LED_IDLE: print(f"LED {led_index + 1} BLINK ENDED") # Track the previous states of the LEDs previous_states = [None] * len(led_array) # Main loop while True: # Update each LED state for i, led in enumerate(led_array): led.loop() # MUST call the led.loop() function in loop() # Get the current state of the LED current_state = led.get_state() # Print the state only if it has changed if current_state != previous_states[i]: print_state(current_state, i) previous_states[i] = current_state # Update the previous state # DO SOMETHING HERE

Avec la bibliothèque DIYables_MicroPython_LED library, vous pouvez rapidement faire clignoter plusieurs LED de cette façon :

  • Faites clignoter plusieurs LED à des vitesses différentes.
  • Faites démarrer le clignotement de plusieurs LED à des moments différents.
  • Faites clignoter chaque LED pendant une certaine durée.
  • Faites clignoter chaque LED un certain nombre de fois.

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 !