Dafür eignen sich sehr schön die MAX7219 8x32 4 in 1 Dot Matrix LED Anzeigemodule, die man leicht hintereinander schalten kann (sogenannte Daisy Chain). In diesem Blog-Beitrag zeige ich ein Beispiel mit drei Displays, mit einer minimalen Änderung am Sketch können Sie aber auch den Fünferpack nutzen.
Mit dem von mir angepassten Beispiel-Sketch aus der MD_MAX72xx.h - Bibliothek haben Sie die Möglichkeit, den Micro Controller mit voreingestelltem Text an einer Power Bank zu betreiben, oder am Rechner angeschlossen die Möglichkeit, den Text jederzeit im Seriellen Monitor zu ändern.
Benötigtes Material
1 |
|
alternativ |
|
alternativ |
beliebiger Micro Controller |
|
Half-Breadboard, Kabel, Poti 10kOhm |
3 - 5 |
Um die drei oder fünf Anzeigemodule zu verbinden, benötigen wir nicht einmal einen Lötkolben. Auf der Eingangsseite sind bereits fünf Steckkontakte angelötet. Am ersten Modul schließen wir VCC an 5V, GND an GND, DIN an den digitalen Pin D11=MOSI, CS an den digitalen Pin D10 sowie CLK an den digitalen Pin D13=SCK. Wir haben es also mit der SPI-Schnittstelle zu tun, allerdings wie bei Displays üblich ohne MISO.
Um die Daisy Chain zu realisieren, entfernen wir vorsichtig das LED-Element am Ausgang des Anzeigemoduls. Nun können wir die fünf Eingangs-Pins des nächsten Moduls in die nun frei liegenden Kontakte des Ausgangs einstecken und vorsichtig umbiegen, bis beide Anzeigemodule in einer Ebene liegen.
Dann können wir das LED-Element wieder in die 2x8 Steckkontakte stecken. Anschließend wiederholen wir diesen Vorgang für die weiteren Anzeigemodule. Bei meiner Versuchsanordnung hatte ich jeweils sicheren Kontakt und habe deshalb auf das Anlöten verzichtet. Es steht jedoch jedem frei, die Module dauerhaft zu verbinden und zum Lötkolben zu greifen.
Software-seitig ist man bei dieser Art von Display gut beraten, auf eine vorhandene Programm-Bibliothek zurück zu greifen. Ich habe im Suchfenster des Bibliotheksverwalters MD_MAX eingegeben und dann die Bibliothek MD_MAX72XX von majicDesigns installiert. Diese kommt mit vielen Beispielen, von denen wir zwei verwenden werden.
Aufgrund der Vielzahl der unterstützten Displays sollte man zunächst herausfinden, welchen Typ man besitzt und im Sketch definieren muss. Dafür laden wir von den Beispiel-Sketchen zunächst MD_MAX72xx_Dynamic_HW. Ich ändere nur die Zeile 16 von der Zahl 4 auf meine Anzahl Einzelelemente, also 3 Anzeigemodule mit je 4 Matrix-Displays ergibt 12:
Nun werden abwechselnd viele kryptische Zeichen angezeigt, bis ich schließlich FC16 klar und deutlich lesen kann.
Also, mein Display ist vom Typ FC16_HW. Diese Zeichenkette muss ich dann in den Beispiel-Sketchen eingeben. Ich möchte den Sketch MD_MAX72xx_Message_Serial für diesen Blog-Beitrag verwenden. Dazu muss ich die Zeile 22 für mein Display ändern:
streiche:
setze:
In der nächsten Zeile 23 ändere ich
in
Wenn Sie einen anderen Micro Controller verwenden, müssen Sie ggf. in den Zeilen 25 - 27 die Nummern für CLK_PIN, Data_PIN und CS_PIN anpassen.
Diejenigen, die den Micro Controller mit unveränderlichem Text an einer Power Bank einsetzen wollen, geben ihren Text in Zeile 45 anstelle des „Hello!“ ein. Für meine Weihnachtsgrüße in mehreren Sprachen - Frohe Weihnachten Merry Christmas Feliz Navidad Glaedelig Jul Joyeux Noel Buon Natale Vrolijk Kerstfeest - habe ich in der Zeile davor die Variable BUF_SIZE auf 150 geändert. Dieser Wert ist auch empfehlenswert, wenn man längeren Text im Seriellen Monitor eingeben möchte.
Eine weitere interessante Größe zum Einstellen ist auch die Geschwindigkeit der Laufschrift. Hier kann man einen voreingestellten Wert wählen – dann definiert man in Zeile 14
und in Zeile 38 zum Beispiel die Voreinstellung
// default in milliseconds, when #define USE_POT_CONTROL 0
Bei Verwendung eines Potentiometers am analogen Eingang A5 setzt man Zeile 14 auf
Dann wird die Variable SCROLL_DELAY mit der map-Funktion auf einen Wert zwischen 25 und 250 eingestellt.
Das war schon alles. Sie erhalten mit wenig Aufwand einen echten „Hingucker“ im Schaufenster. Viel Spaß beim Nachbauen.
2 Reacties
Andreas Wolter
@Mani:
es stimmt, hier gibt es kein Schaltbild. Es ist allerdings auch gar nicht zwingend notwendig. Im Text steht, wie die Kontakte verbunden werden:
Display → Mikrocontroller:
VCC an 5V
GND an GND
DIN an den digitalen Pin D11=MOSI
CS an den digitalen Pin D10
CLK an den digitalen Pin D13=SCK
Dann sollte es schon funktionieren.
Probieren Sie es bitte einmal aus.
Grüße,
Andreas Wolter
AZ-Delivery Blog
Mani
Habe alle Teile hier zu Haus.Würde die Laufschrift gerne bauen, allein der Anschlußplan fehlt mir!