ESP32 - Mehrere LEDs blinken lassen

Diese Anleitung zeigt Ihnen, wie Sie einen ESP32 einrichten und MicroPython-Code schreiben, um mehrere LEDs mit unterschiedlichen Geschwindigkeiten blinken zu lassen, ohne die Funktion time.sleep() zu verwenden. Die Anleitung wird auf zwei verschiedene Arten gezeigt:

ESP32 MicroPython lässt mehrere LEDs blinken

Wir erklären das Vorgehen mit drei LEDs. Sie können es leicht für zwei, vier oder mehr LEDs anpassen.

Erforderliche Hardware

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativ) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×LED Kit
1×LED (red)
1×LED Module
1×(Alternativ) Button and LED Kit
1×220Ω Resistor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.

Überblick über LED

Wenn Sie mit LEDs noch nicht vertraut sind (einschließlich Pinbelegung, Funktionsweise, Anschluss an den ESP32 und Schreiben von MicroPython-Code für den ESP32 zur Ansteuerung), erfahren Sie mehr unter:

Verdrahtungsdiagramm

ESP32 MicroPython Schaltplan für mehrere LEDs

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

ESP32 MicroPython Code - Mehrere LEDs blinken lassen

Um mehrere LEDs gleichzeitig blinken zu lassen, verwenden Sie nicht die Funktion time.sleep(), da sie anderen Code blockiert. Verwenden Sie stattdessen Zeitstempel, um das Timing zu steuern.

Wenn Sie gerade erst mit dem Programmieren beginnen und Schwierigkeiten haben, das Timing für das Blinken mehrerer LEDs zu steuern, macht es Ihnen die DIYables_MicroPython_LED-Bibliothek leichter, indem sie das Timing für Sie übernimmt. So müssen Sie sich bei Verwendung der Bibliothek keine Gedanken über Timing-Probleme machen.

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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

Schnelle Schritte

So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihr ESP32-Board geladen ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
  • Verbinden Sie das ESP32-Board wie im Schaltplan gezeigt mit den LEDs.
  • Verbinden Sie das ESP32-Board mit einem USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Thonny IDE auf Ihrem Computer.
  • Gehen Sie in der Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter im Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, aber möglicherweise müssen Sie ihn manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Gehen Sie in der Thonny IDE zu Tools Manage packages.
  • Suchen Sie nach “DIYables-MicroPython-LED” und finden Sie die LED-Bibliothek von DIYables.
  • Klicken Sie auf DIYables-MicroPython-LED und dann auf die Schaltfläche Install, um die LED-Bibliothek auf dem ESP32-Board zu installieren.
ESP32 MicroPython LED-Bibliothek
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Prüfen Sie, ob die LEDs an oder aus sind.

ESP32 MicroPython Code - Mehrere LEDs mithilfe eines Arrays blinken lassen

Wir können den vorherigen Code verbessern, indem wir ein Array von LEDs verwenden. Der folgende Code verwendet dieses Array, um die LED-Objekte zu verwalten.

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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

Mit der DIYables_MicroPython_LED-Bibliothek können Sie mehrere LEDs schnell auf folgende Weise blinken lassen:

  • Mehrere LEDs mit unterschiedlichen Geschwindigkeiten blinken lassen.
  • Mehrere LEDs zu unterschiedlichen Zeitpunkten zu blinken beginnen lassen.
  • Jede LED für eine bestimmte Zeitdauer blinken lassen.
  • Jede LED eine bestimmte Anzahl von Malen blinken lassen.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!