ESP32 - LED-Matrix

Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 mit LED-Matrix-Anzeigemodulen verwenden. Im Einzelnen lernen Sie:

Anschließend können Sie den Code ganz einfach für andere LED-Matrizen wie die 16x8- oder 64x8-LED-Matrix anpassen.

ESP32 MicroPython LED-Matrix

Überblick über LED Matrix

LED-Matrix-Anzeige

Es gibt verschiedene Arten von LED-Matrizen, aber die MAX7219-basierte LED-Matrix wird häufig mit dem ESP32 verwendet. Die MAX7219-basierte LED-Matrix bietet folgende Eigenschaften:

  • Die Grundeinheit einer LED-Matrix ist ein Block.
  • Jeder Block enthält eine 8x8-LED-Matrix (64 LEDs) und einen MAX7219-Treiber.
  • Sie können LED-Matrizen aus einem einzelnen Block oder durch Verketten mehrerer Blöcke aufbauen.
  • Es gibt vormontierte LED-Matrizen mit mehreren Blöcken, z. B. in 4-in-1- oder 8-in-1-Konfigurationen.
  • Alternativ können Sie einzelne Blöcke kaufen und sie zu einer Matrix Ihrer gewünschten Größe verbinden, wobei Sie 1-in-1-, 4-in-1- oder 8-in-1-LED-Matrizen miteinander verketten können.
  • Die Größe der LED-Matrix muss in Ihrem ESP32-Code angegeben werden.

Pinbelegung

LED-Matrix Pinbelegung

Eine LED-Matrix besteht aus einem oder mehreren Abschnitten. Jeder Abschnitt hat zwei Arten von Anschlüssen:

  • Gruppe der Eingangspins:
    • VCC: Mit 5V verbinden.
    • GMD: Mit GND verbinden.
    • DIN: Dies ist der Daten-Pin. Mit dem SPI-MOSI-Pin des ESP32 verbinden.
    • CS: Chip Select. Mit einem beliebigen digitalen Pin des ESP32 verbinden.
    • CLK: Takt-Pin. Mit dem SPI-CLK-Pin des ESP32 verbinden.
  • Gruppe der Ausgangspins:
    • VCC: Mit VCC des nächsten Moduls verbinden.
    • GND: Mit GMD des nächsten Moduls verbinden.
    • DOUT: Datenausgang. Mit dem DIN-Pin des nächsten Moduls verbinden.
    • CS: Mit CS des nächsten Moduls verbinden.
    • CLK: Mit CLK des nächsten Moduls verbinden.

Verdrahtungsdiagramm

Da die Anzeige viel Strom verbraucht (bis zu 1A bei maximaler Helligkeit), sollte sie nicht über den 5V-Pin des Arduino versorgt werden. Verwenden Sie stattdessen ein externes 5V-Netzteil, sodass sowohl der Arduino als auch die LED-Matrix vom selben 5V-Adapter versorgt werden.

Wenn die LED-Matrix nur einen Block hat:

  • Verbinden Sie die Gruppe der Eingangspins mit dem ESP32.
  • Schließen Sie die Gruppe der Ausgangspins nicht an.
ESP32 MicroPython 8x8-LED-Matrix FC-16 Schaltplan

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

Wenn die LED-Matrix bereits aus mehreren Abschnitten zusammengesetzt ist:

  • Verbinden Sie die Gruppe der Eingangspins mit dem ESP32.
  • Schließen Sie die Gruppe der Ausgangspins nicht an.
ESP32 MicroPython LED-Matrix-Anzeige Schaltplan

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

Wenn Sie die LED-Matrix aus einzelnen Komponenten zusammensetzen:

  • Verbinden Sie die Eingangspins des ersten Blocks mit dem ESP32.
  • Verbinden Sie die Ausgangspins jedes Blocks mit den Eingangspins des nächsten Blocks.
  • Schließen Sie die Ausgangspins des letzten Blocks nicht an.
ESP32 MicroPython 32x8-LED-Matrix FC-16 Schaltplan

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

ESP32 - LED-Matrix-Code

Der folgende ESP32-MicroPython-Code ist für eine 32x8-FC-16-LED-Matrix-Anzeige mit vier Blöcken gedacht. Er kann jedoch für andere Größen wie 8x8, 16x8, 64x8 und weitere angepasst werden.

/* * 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-led-matrix */ from machine import Pin, SPI from time import sleep from DIYables_MicroPython_LED_Matrix import Max7219 # Initialize SPI and CS pin spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(23)) cs = Pin(21, Pin.OUT) # Initialize the Max7219 class display = Max7219(spi, cs, num_matrices=4) display.set_brightness(15) # Adjust brightness from 0 to 15 # Clear the display display.clear() # Render text on the display display.print("34°C", col = 2) display.show()

Schnelle Schritte

Bitte befolgen Sie diese Anweisungen Schritt für Schritt:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Stellen Sie sicher, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie das Tutorial ESP32 MicroPython Erste Schritte mit ausführlichen Anweisungen.
  • Verbinden Sie das ESP32-Board gemäß dem Schaltplan mit der LED-Matrix.
  • Verbinden Sie das ESP32-Board über ein 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 aus dem Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Navigieren Sie in der Thonny IDE zu Tools Manage packages.
  • Suchen Sie nach “DIYables-MicroPython-LED-Matrix” und finden Sie die von DIYables erstellte LED-Matrix-Bibliothek.
  • Klicken Sie auf DIYables-MicroPython-LED-Matrix und dann auf die Schaltfläche Install, um die LED-Matrix-Bibliothek zu installieren.
ESP32 MicroPython LED-Matrix-Bibliothek
  • Kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Thonny IDE ein.
  • Speichern Sie das Skript auf Ihrem ESP32-Board:
    • Klicken Sie auf die Schaltfläche Save oder verwenden Sie die Tasten Ctrl+S.
    • Im Speicherdialog sehen Sie zwei Bereiche: This computer und MicroPython device. Wählen Sie MicroPython device.
    • Speichern Sie die Datei als main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen. Das Skript wird ausgeführt.
  • Sehen Sie sich die LED-Matrix an. Sie sieht wie folgt aus:
ESP32 MicroPython LED-Matrix zeigt Text an

Die tatsächliche Leuchtanzeige sieht viel besser aus als auf dem Bild. Die Kamera kann die echten Farben der Beleuchtung nicht genau wiedergeben.

ESP32 MicroPython LED-Matrix-Code – Lauftext

Wenn Ihre Nachricht zu lang für die LED-Matrix-Anzeige ist, können Sie sie über den Bildschirm scrollen lassen. Der folgende MicroPython-Code für den ESP32 zeigt, wie Sie eine Nachricht auf der LED-Matrix-Anzeige scrollen lassen.

/* * 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-led-matrix */ from machine import Pin, SPI from time import sleep from DIYables_MicroPython_LED_Matrix import Max7219 # Initialize SPI and CS pin spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(23)) cs = Pin(21, Pin.OUT) # Initialize the Max7219 class display = Max7219(spi, cs, num_matrices=4) display.set_brightness(15) # Adjust brightness from 0 to 15 def scroll_text(message): # Scroll the message from right to left display.print(message, col = 32) # Text starts from the right (x=32) and moves left for i in range(len(message) * 8 + 32): # Scroll through the entire message display.clear() display.print(message, col = 32 - i) # Move text from right to left display.show() sleep(0.05) # change speed here while True: scroll_text("Hello, DIYables") # Change text as needed

Schnelle Schritte

  • Kopieren Sie den bereitgestellten ESP32-MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den MicroPython-Code auf Ihrem ESP32-Board.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um den Code auszuführen.
  • Sehen Sie sich die LED-Matrix an. Der Scroll-Effekt sieht wie folgt aus:

ESP32 MicroPython LED-Matrix - Benutzerdefinierte Zeichen

Um Sonderzeichen oder Symbole wie ein Herz oder einen Angry Bird auf einer LED-Matrix-Anzeige darzustellen, müssen Sie den Zeichengenerator verwenden.

Der Zeichengenerator erstellt ein Zeichen (64 Pixel). Sie müssen nur diese Schritte befolgen:

Click on each pixel to select/deselect


Copy below custom character code
Replace the custom_char in the ESP32 MicroPython code

Der folgende ESP32-MicroPython-Code zeigt drei benutzerdefinierte Zeichen auf der 32x8-LED-Matrix an:

/* * 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-led-matrix */ from machine import Pin, SPI from time import sleep from DIYables_MicroPython_LED_Matrix import Max7219 # Initialize SPI and CS pin spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(23)) cs = Pin(21, Pin.OUT) # Initialize the Max7219 class display = Max7219(spi, cs, num_matrices=4) display.set_brightness(15) # Adjust brightness from 0 to 15 # Clear the display display.clear() display.show() custom_char_1 = [ 0b00000000, 0b00000000, 0b00000000, 0b11110000, 0b00000000, 0b00000000, 0b00000000, 0b00000000 ] custom_char_2 = [ 0b00000000, 0b01101100, 0b10010010, 0b10000010, 0b10000010, 0b01000100, 0b00101000, 0b00010000 ] custom_char_3 = [ 0b00000000, 0b00100000, 0b00010000, 0b11111000, 0b00010000, 0b00100000, 0b00000000, 0b00000000 ] # Clear the display display.clear() display.print_custom_char(custom_char_1, col = 0) display.print_custom_char(custom_char_2, col = 4) display.print_custom_char(custom_char_3, col = 11) display.show()

Schnelle Schritte

  • Kopieren Sie den bereitgestellten ESP32-MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den MicroPython-Code auf Ihrem ESP32-Board.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um den Code auszuführen.
  • Sehen Sie sich die LED-Matrix an. Sie sieht wie folgt aus:
ESP32 MicroPython LED-Matrix benutzerdefinierte Zeichen

Verwandte Tutorials

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