Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Grove 8×8 LED Matrix am Arduino: Einsteigerfreundliche Programmieranleitung

Posted on 6. März 202423. Februar 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir zeigen, wie du die Grove 8×8 LED Matrix am Arduino UNO R3 programmierst. Der Vorteil von diesem Modul ist es, dass du keine umständliche Verkabelung vornehmen musst, da die Grove Schnittstelle einheitlich ist und ein vorkonfektioniertes Kabel verwendet wird.

Grove 8x8 LED Matrix am Arduino: Einsteigerfreundliche Programmieranleitung
Grove 8×8 LED Matrix am Arduino: Einsteigerfreundliche Programmieranleitung

Im Beitrag Arduino Lektion 8: Max7219 8×8 LED Shield habe ich dir bereits ein ähnliches Modul mit dem Chip MAX7219 vorgestellt. Hier soll es nun um eine Matrix mit dem Treiber HT16K33 gehen.

Inhaltsverzeichnis

  • Bezug einer 8×8 LED Matrix mit Grove Schnittstelle
    • Lieferumfang
  • Aufbau der 8×8 LED Matrix
    • I2C Adressen via Lötbrücken
  • Zusätzliche Ressourcen für die Programmierung am Arduino
  • Programmieren der LED Matrix am Arduino via I2C
    • Anzeigen eines Smileys auf der LED Matrix
    • Ausgabe von Scrolltext auf der LED Matrix
  • Ändern der default I2C Adresse im Programm
  • Vergleich zwischen 8×8 LED Matrix – MAX7219 & HT16K33
  • Fazit zur Programmierung der 8×8 LED Matrix mit Grove Schnittstelle am Arduino
    • Ausblick

Bezug einer 8×8 LED Matrix mit Grove Schnittstelle

Das mir vorliegende Modul habe ich auf ebay.de für rund 9 € zzgl. Versandkosten erstanden. Du bekommst dieses Modul aber etwas günstiger bei BerryBase für derzeit 8 € zzgl. Versandkosten.

Lieferumfang

Im Lieferumfang der LED Matrix ist neben der Matrix noch ein kleines Grove Kabel für den Anschluss, sowie ein Zettel mit den wichtigsten technischen Daten.

Auf der LED Matrix ist noch eine kleine Schutzfolie, welche du abziehen kannst, ich lasse diese jedoch drauf.

Aufbau der 8×8 LED Matrix

Auf der Rückseite findest du die Grove Schnittstelle, sowie zwei Lötpunkte für die optionale externe Stromversorgung. Des Weiteren kannst du die I2C Adresse 0x70 via 3 Lötbrücken ändern.

I2C Adressen via Lötbrücken

Wenn du die Lötbrücken verbindest, dann kannst du diese Matrix über nachfolgende I2C Adressen ansteuern. Dabei kannst du auch mehrere Muster wählen und so zwischen 8 I2C Adressen auswählen.

Verbundene PinsI2C Adresse
–0x70
A00x71
A10x72
A20x72
A0 & A10x73
A0 & A20x75
A1 & A20x76
A0, A1 & A20x77

Zur Ermittlung der I2C Adressen habe ich den I2C Scanner von https://playground.arduino.cc/Main/I2cScanner/ verwendet.

Zusätzliche Ressourcen für die Programmierung am Arduino

Damit du diese LED Matrix programmieren kannst, benötigst du entweder

  • ein Grove Adapterkabel, oder
  • ein Grove Base Shield für den Arduino UNO R3, oder
  • ein Seeeduino Nano
Grove Adapterkabel zu Breadboardpins
Grove Adapterkabel zu Breadboardpins
Grove Base Shield für den Arduino UNO R3
Grove Base Shield für den Arduino UNO R3
Seeeduino Nano
Seeeduino Nano

Das Grove Base Shield hat mehrere Grove Buchsen digital & analog und somit bietet dieses eine sehr große Bandbreite an Möglichkeiten für Projekte. Wenn du lediglich die LED Matrix programmieren möchtest und du hast bereits einen Arduino Nano oder Arduino UNO dann

Programmieren der LED Matrix am Arduino via I2C

Damit die LED Matrix mit HT16K33 Treiber angesteuert werden kann, müssen wir in der Arduino IDE eine zusätzliche Bibliothek installieren. Diese können wir uns als ZIP-Datei vom GitHub Repository Seeed-Studio/Grove_LED_Matrix_Driver_HT16K33 herunterladen.

Weitere Informationen zu diesem Modul findest du auf der englischen Wikiseite von Seeedstudio https://wiki.seeedstudio.com/Grove-LED_Matrix_Driver-HT16K33/.

Anzeigen eines Smileys auf der LED Matrix

Für die Erstellung eines Smileys kannst du den LED Matrix Editor unter https://xantorohara.github.io/led-matrix-editor/ verwenden. Dieser Onlineeditor gibt dir die Möglichkeit, mit der Maus auf der LED Matrix einzelne LEDs zu aktivieren / deaktivieren.

LED Matrix Editor von Xantorohara
LED Matrix Editor von Xantorohara

Auf der rechten Seite findest du ein Stück Code, welchen du in dein Arduino Programm integrieren kannst. In meinem Fall habe ich ein lachendes Smiley gezeichnet und erhalte den Wert „0x3c4299a581a5423c“.

Die Bibliothek liefert zusätzlich ein paar Beispiele, welche mit der default I2C Adresse 0x70 lauffähig sind. Von diesen Beispielen wähle ich zunächst „displaycustom_pictures“ und modifiziere dieses etwas.

//Bibliotheken zum kommunizieren mit der LED Matrix
#include <Wire.h>
#include "Grove_LED_Matrix_Driver_HT16K33.h"

//Wert für ein lachenden Smiley
const uint64_t smiley = 0x3c4299a581a5423c;

//instanz einer LED Matrix
Matrix_8x8 matrix;

void setup() {
  //beginn der I2C kommunikation
  Wire.begin();
  //beginn der kommunikation mit der LED Matrix
  matrix.init();
  //setzen der Helligkeit der Matrix
  //Werte sind zwischen 0 und 15
  //wobei 0 dunkel ist und 15 das hellste
  matrix.setBrightness(5);
  //In welcher Frequenz die LED Matrix blinken soll,
  //Werte sind:
  //- BLINK_OFF > kein blinken,
  //- BLINK_1HZ > langsames blinken,
  //- BLINK_2HZ > schnelles blinken,
  matrix.setBlinkRate(BLINK_OFF);
}

void loop() {
  //anzeigen eines Bildes
  matrix.writeOnePicture(smiley);
  //absenden der Daten
  matrix.display();
  //eine Pause von 10 Sekunden
  delay(10000);
}

Auf der Matrix hat man natürlich nur begrenzte Möglichkeiten zur Darstellung von Bildern, jedoch für so kleine Smileys und Pfeile ist dieses bestens geeignet.

lachender Smiley auf der 8x8 LED Matrix
lachender Smiley auf der 8×8 LED Matrix

Ausgabe von Scrolltext auf der LED Matrix

Da wie erwähnt die kleine LED Matrix nur begrenzten Platz für Zeichen bietet, gibt es die Möglichkeit Text auf diesem durchscrollen zu lassen.

void loop() {
  //Funktion zum anzeigen eines Textes auf der LED Matrix,
  //Parameter:
  //String - die Zeichenkette welche ausgegeben werden soll,
  //Zahl - Wert in Millisekunden pro Zeichen
  //Typ 
  //ACTION_SHIFT - jedes Zeichen einzeln anzeigen,
  //ACTION_SCROLLING - den Text durch die Matrix scrollen lassen
  matrix.writeString("Hallo Welt!", 1000, ACTION_SCROLLING);
  matrix.display();
}

Damit ich das Video aufnehmen konnte, sodass meine Kamera den Text erfasst, habe ich ein kleines Tuch vor die LED Matrix gehängt.

Ändern der default I2C Adresse im Programm

Wenn du bereits Sensoren oder Aktoren am I2C Bus angeschlossen hast, dann kann es vorkommen, dass die default I2C Adresse der LED Matrix bereits belegt ist und du diese im Programm überschreiben musst. (Oder auch, wenn du mehrere solcher Matrixen an einem I2C Bus anschließen möchtest.)

Dazu findest du in der Funktion setup den Aufruf der Funktion „matrix.ini();“. Diese Funktion kann einen Parameter vom Typ uint8_t übernehmen und hat als default den Wert des Feldes HT16K33_DEFAULT_I2C_ADDR.

#define HT16K33_DEFAULT_I2C_ADDR    0x70

Wir übergeben also nun den Hexadezimalen Wert, welchen wir aus der Tabelle (siehe I2C Adressen via Lötbrücken) entnehmen können. Und brauchen quasi in unserem Programm nichts weiter anpassen.

matrix.init(0x71);

Vergleich zwischen 8×8 LED Matrix – MAX7219 & HT16K33

Zum Schluss möchte ich dir noch gerne die Unterschiede zur LED Matrix mit dem MAX7219 Chip aufzeigen. Diese LED Matrix verfügt ebenso wie die vorgestellte Matrix über 8×8 LEDs und kann ebenso einfach programmiert werden.

8x8 LED Matrix mit HT16K33 Treiberchip
8×8 LED Matrix mit HT16K33 Treiberchip
8x8 LED Matrix mit MAX7219 Treiberchip
8×8 LED Matrix mit MAX7219 Treiberchip

Jedoch kannst du diese Matrix zu mehreren zusammenstecken und so eine schier endlose Anzeige aufbauen.

MAX7219 Shields auf einem Stativ
MAX7219 Shields auf einem Stativ

Die LED Matrix mit Grove Schnittstelle jedoch kannst du nicht so kaskadierend aufbauen und somit bist du mit dem Modul in deinen Möglichkeiten stärker beschränkt.

Fazit zur Programmierung der 8×8 LED Matrix mit Grove Schnittstelle am Arduino

Die LED Matrix von Seeedstudio mit Grove Schnittstelle und HT16K33 Treiberchip lässt sich super einfach programmieren. Du benötigst wenig Code und über die I2C Schnittstelle und dem Grovekabel hast du deutlich weniger Verkablung als bei der LED Matrix mit MAX7219, leider vermisse ich hier die Möglichkeit die Module kaskadierend zu verbinden und so ein langes Display für Laufschrift aufzubauen.

Mit dem Online LED Matrix Editor kannst du dir jedoch recht einfach kleine Frames für die Matrix erstellen und in den Code kopieren.

Ausblick

Ich werde nun mal schauen, welche kleinen Projekte man mit dieser Matrix aufbauen kann. Jedoch würde ich eher zu einer RGB Matrix tendieren, denn diese kann bei gleicher Baugröße verschiedenfarbige Pixel anzeigen.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}