Forum: Projekte & Code LED-Matrix mit ESP8266 und MAX7219 Modulen


von Johannes S. (Gast)



Lesenswert?

Hier ist ein weiterer Baustein aus meiner DIY Heimautomatisierung, eine 
LED Matrix Anzeige. Es sollte für alle möglichen Anzeigen gebrauchen zu 
sein und ich habe das mit dem ESP realisiert. Eigentlich verbaue ich 
lieber Cortex-M µCs, aber hier drängt sich der ESP förmlich auf: LED 
braucht relativ viel Strom, also kein Batteriebetrieb und Stromverbrauch 
des ESP ist hier kein Problem. Für den ESP sowie die MAX7219 gibt es 
fertige Libs mit vielen Funktionen, eine Software dafür ist schnell 
zusammengestoppelt. So sieht meine erste Version allerdings auch aus, 
das ist noch nicht finaler Stand. Die Nachrichten kommen bei mir per 
MQTT, aber da gibt es dank der vielen Libs für den ESP natürlich auch 
andere Möglichkeiten. Auf einem Raspberry habe ich Node Red laufen, das 
bekommt z.B. Daten von Temperatursensoren und ereugt dann den String für 
die Anzeige. Das Display soll bei mir dumm bleiben und nur tun was man 
ihm sagt, man könnte aber auch lokale Sensoren anschliessen.
Die verwendete MD_Parola Lib hat viele Features für Darstellungseffekte, 
meine Idee ist dem Display JSON Messages zu schicken mit Text, Effekt, 
Anzeigedauer und Priorität. Das können dann Ereignisse wie Türklingel 
oder 3D Drucker Status oder sonstwas sein.
Die Elektronik ist noch als Prototyp auf einem Breadboard gesteckt, ich 
habe aber auch eine Platine für ein ESP12 Modul gemacht. Die Platinen 
sollen Montag kommen, habe ich bei Elecrow bestellt. Bei Interesse kann 
ich ein paar abgeben. Mir ist leider erst nachträglich noch eine 
Unschärfe aufgefallen: der Spannungsregler für die 3V3 hat die Kühlfahne 
und Pin 2 verbunden, ich habe die Kühlfahne isoliert und damit ist die 
Kühlfläche recht klein. Es müsste also noch eine zusätliche Kühlfahne 
angelötet werden und das Layout angepasst werden falls es jemand 
nachbauen möchte.
Die Platine passt direkt auf den 5 pol. Header vom Display. I2C ist auf 
dem Erweiterungsstecker für lokale Senoren.
Das Gehäuse ist mit dem 3D Drucker gedruckt. Auf Thingiverse findet man 
auch fertige Entwürfe, aber die sind fast alle nur für ein 4er Modul und 
ich möchte eine grössere Anzeige haben. Da ich bisher nur max. 200 mm 
drucken kann habe ich Segmente mit Nut und Zapfen gemacht die man 
ineinanderschieben kann, so lassen sich beliebig lange Gehäuse bauen. 
Die Teile müssen mit dem Hammer zusammengeklopft werden und halten dann 
bombenfest, jedenfalls so wie sie aus meinem alten groben K8200 raus 
kommen. Ich habe die mit Sprühspachtel und schwarzem Acryllack 
bearbeitet, das sieht aber noch nicht perfekt aus. Wenn man sich mehr 
Mühe gibt kann das aber richtig gut werden. Alternativ könnte man das 
aus Holz fräsen oder einzelnen Holzteilen bauen. Im Internet gibt es 
auch eine Version wo ein Holzfurnier über die LED geklebt ist, das sieht 
auch nicht schlecht aus.
Hier ist ein Link zu den Modulen die ich verbaut habe: 
https://www.ebay.de/itm/4-In-1-MAX7219-Mikrocontroller-Display-Dot-Modul-F%C3%BCr-Arduino-Matrix-5V-Teil/382620790952

von Johannes S. (Gast)



Lesenswert?

die Platinen von Elecrow sind heute gekommen, habe eine bestückt und... 
geht nicht. Da ist mir beim abkupfern der ESP Beschaltung ein Fehler 
unterlaufen, R4 hatte ich zum Pull Down gemacht, es muss aber ein Pull 
Up sein. Wenn man den nicht bestückt funktioniert es aber auch mit 
dieser Platine.
Der Spannungsregler wird auch nicht warm, trotz minimalster Kühlfläche.
Im Anhang nochmal der korrigierte Plan mit R4 als Pull Up.

von Der Makkus (Gast)


Lesenswert?

Hallo Johannes S.,
ich bin ein absoluter Anfänger, was ESP8266 und das Dot Matrix Display 
angeht. Ich habe es aber geschafft, den Code bei mir zum Laufen zu 
bringen und Text von meinem Raspberry Pi über Node Red und MQTT an das 
Display zu senden. Leider gibt mein Display (Max7219 mit 4 Modulen) den 
Text nicht in Laufschrift wieder. Es zeigt einfach die ersten paar 
Buchstaben, soweit sie auf die Breite des Moduls passen, an und 
schneidet den Rest des Textes ab. Gibt es in dem Code, den du 
dankenswerter Weise erstellt hast, eine Möglichkeit den Text mit einem 
"Scroll-Effekt" am Display auszugeben?
Danke!
Gruß
Der Makkus

von Johannes S. (Gast)


Lesenswert?

Hallo Makkus,
ich komme im Moment nicht dazu mich um meinem Bastelkram zu kümmern.
In der Anzeige wird die 'MD_Parola' Lib verwendet, die hat jede Menge 
Optionen für die Darstellung und kann auch scrollen mit allen möglichen 
Effekten. Siehe https://github.com/MajicDesigns/MD_Parola, da sind 
Beispiele für scrollen bei, zB:
https://github.com/MajicDesigns/MD_Parola/blob/master/examples/Parola_Scrolling/Parola_Scrolling.ino
 Auch auf Youtube sind jede Menge Tutorials und Demos zu dieser Lib zu 
finden.
Ich habe es schonmal überflogen und eventuell reicht es in der 
Initialisierung in setup() den ScrollMode zu setzen und in der 
Dauerschleife displayAnimate() zyklisch zu aufzurufen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.