ESP32 mit Arduino programmiert steuert ein 8×8 LED-Matrix-Modul als Daumenkino – Teil 2

Nach der Vorstellung des Projekts in Teil 1 geht es hier darum, die Pinbelegung der LED-Matrix herauszufinden, da verschiedene Varianten mit unterschiedlicher Pinbelegung erhältlich sind.

Wie man aus dem Schaltbild ersehen kann, lassen sich alle 64 LEDs durch Zeile und Spalte eindeutig adressieren:

Ohne Pinout stellt sich nun die Frage, welcher der 16 Pins unter dem Modul denn zu welcher Zeile oder Spalte gehört. Um die Belegung herauszufinden, sollten wir erst einmal die LED-Matrix in zwei kleine Breadboards stecken (für eines sind bei meinem Modul die Pinreihen zu weit auseinander), ein Paar Versorgungsreihen auf einem der Breadboards mit 3,3V verbinden und einen Vorwiderstand von ca. 100Ω zwischen Plus und einen der „Suchdrähte“ schalten (je nach Art der LEDs kann der benötigte Wert variieren). Dann benennen wir die Spalten und Zeilen des LED-Moduls (in der Art einer bekannten Tabellenkalkulation) und nummerieren die Pins unter dem Modul der Reihe nach durch:

Anschließend legen wir uns eine Tabelle für die herauszufindenden Belegungen an:

PIN:12345678910111213141516
Pol:
Spalte:
Zeile:

Danach heißt es erst einmal, das erste Zeile/Spalte-Paar zu finden. Dazu verbinden wir die Suchdrähte 1 und 2 so lange in allen möglichen Varianten mit je 2 der 16 Pins der Matrix, bis die erste LED dann auch tatsächlich aufleuchtet. Vergesst beim Herumsuchen bitte nicht, dass auch das Vertauschen der beiden Drähte zum Probieren dazugehört, da die LEDs ja nur in einer Richtung des Stromflusses leuchten.

Mein erster Fund war bei blauem Draht an Pin 16 und rotem Draht an Pin 9. Hier leuchtet die LED an Position H8:

Das tragen wir dann wie folgt in die Tabelle ein, da wir zum jetzigen Zeitpunkt noch nicht genau wissen, welcher Pin denn nun die Zeile und welcher die Spalte ansteuert:

PIN:12345678910111213141516
Pol:+
Spalte:HH
Zeile:88

Im Anschluss lassen wir einen der Drähte (Pin 16) so und gehen dann mit dem anderen auf die Suche nach dem nächsten Treffer. Direkt am nächsten Pin (10) leuchtet bei mir dann die LED an H7 auf:

Das Resultat wird wieder in die Tabelle eingetragen:

PIN:12345678910111213141516
Pol:++
Spalte:HHH
Zeile:878

Da man sieht, dass die Spalte H unabhängig davon angesteuert wird, ob Pin 9 oder Pin 10 beschaltet sind, ergibt sich, dass Pin 16 für die Spalte H zuständig ist. Da ein Pin entweder eine Zeile oder eine Spalte ansteuert, kann Pin 16 auch nicht für Zeile 8 zuständig sein:

PIN:12345678910111213141516
Pol:++
Spalte:H
Zeile:87

Dann suchen wir die weiteren Zeilen-Pins. Pin 16 bleibt mit dem blauen Draht besteckt und mit dem roten werden alle noch nicht in der Tabelle zugeordneten Pins „abgeklappert“, bis alle Zeilen-Pins gefunden sind:

PIN:12345678910111213141516
Pol:++++++++
Spalte:H
Zeile:23587164

Nun müssen nur noch die restlichen Spalten-Pins heraussortiert werden. Dazu lässt man nun den roten Draht, da wo er gerade ist (sofern eine LED leuchtet, ansonsten muss man ihn auf einen bekannten Zeilen-Pin stecken, sodass eine LED leuchtet) und verbindet den blauen Draht mit den noch nicht zugeordneten Pins, bis die Tabelle vervollständigt ist:

PIN:12345678910111213141516
Pol:++++++++
Spalte:DBACFGEH
Zeile:23587164

Wie schon geschrieben: Es ist durchaus möglich, dass ihr bei eurem LED-Matrix-Modul eine ganz andere Zuordnung herausfindet! Hat man nun die Belegung für sein LED-Modul ermittelt und die Tabelle gefüllt, kann es an den Aufbau der gesamten „Schaltung“ gehen. Das beschreibe ich in Teil 3.