Weihnachtsgrüße am laufenden Band - AZ-Delivery
Es muss ja nicht gleich die Leuchtreklame vom Times Square in New York sein. Aber Licht und Bewegung erregen schneller unsere Aufmerksamkeit. Warum also keine Laufschrift in unserem Schaufenster für die neuesten Sonderangebote oder die Weihnachtsgrüße.

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

Nano V3.0 mit FT232RL Chip und ATmega328

alternativ

Mikrocontroller Board ATmega328

alternativ

beliebiger Micro Controller

 

Half-Breadboard, Kabel, Poti 10kOhm

3 - 5

MAX7219 8x32 4 in 1 Dot Matrix LED Anzeigemodul

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.

Bibliothek

Beispielsketch

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:

 #define MAX_DEVICES 12

Nun werden abwechselnd viele kryptische Zeichen angezeigt, bis ich schließlich FC16 klar und deutlich lesen kann.

Displaytyp

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:

 #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW

setze:

 #define HARDWARE_TYPE MD_MAX72XX::FC16_HW

In der nächsten Zeile 23 ändere ich

 #define MAX_DEVICES 11

in

 #define MAX_DEVICES 12

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

 #define USE_POT_CONTROL 0

und in Zeile 38 zum Beispiel die Voreinstellung

 #define SCROLL_DELAY  75  // default in milliseconds, when #define USE_POT_CONTROL 0

Bei Verwendung eines Potentiometers am analogen Eingang A5 setzt man Zeile 14 auf

 #define USE_POT_CONTROL 1

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.

Download Sketch

Download als pdf

DisplaysFür arduinoProjekte für anfänger

2 Kommentare

Andreas Wolter

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

Mani

Habe alle Teile hier zu Haus.Würde die Laufschrift gerne bauen, allein der Anschlußplan fehlt mir!

Kommentar hinterlassen

Alle Kommentare werden von einem Moderator vor der Veröffentlichung überprüft

Empfohlene Blogbeiträge

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery