Nachdem die Ausgabe mit einem einfachen Siebensegment Display mit einem Digit so gut geklappt hat versuche ich es mal mit mehreren Digits. Einem vier Digit auf dem Breadboard und einem acht Digit als fertiges Modul.
Beim Programmieren ergaben sich einige Probleme. In der Beispielsoftware „How to control …“ (s.u.) habe ich geändert von numberofDigits = 2 auf numberofDigits = 4.
Damit läuft es dann für das vier Digit Display.
Die Hardware
Ein Arduino Uno
– ein MAX7219
– ein 4Digit Display
– ein 8Digit Modul
beide Ausgaben sind am SPI angeschlossen und hintereinander geschaltet.
Ausgabe auf 7Segment
Die Zuordnung der Segmente
Die Segmente sind in der Bibliothek „ledcontrol“ anders angeordnet als im Datasheet (Standard) angegeben.
7-Segment a-g und der DezimalPunkt h nach Zuordnung laut Datasheet
a | |||
f | b | ||
g | |||
e | c | ||
d | h |
7-Segment nach Bibliothek „ledcontrol“, experimentell ermittelt
f | |||
a | e | ||
h | |||
b | d | ||
c | g |
Die Definitionen der Zeichen habe ich aus dem einfachen Siebensegment Projekt übernommen und die Bitdefinitionen der Segmente an die „ledcontrol“ Bibliothek angepasst.
Die Zuordnung der Digits
Selbst die einzelnen Digits sind je nach Display bzw. Modul unterschiedlich. Am vier Digit Display ist das Digit0 links und zählt einfach hoch nach rechts. Am acht Digit Modul ist das Digit0 rechts und zählt dann hoch nach links. Das habe ich bei den Funktionen zur Siebensegment Ausgabe berücksichtigen müssen, um die Programmierung einfach zu halten.
Die Software
In üblicher Weise modular aufgebaut. Mit Funktionen, die die unterschiedliche Ausrichtung der Digits berücksichtigen. Damit sind dann mit allen darstellbaren Zeichen sogar einige Spielereien möglich.
Der Sketch
LED-7Segment-SPI
Links
How to Control a 4-digit 7-segment LED Display with a Max7219 Chip
http://www.learningaboutelectronics.com/Articles/Max7219-4-digit-7-segment-LED-display-driver-circuit.php
Acht-Digit Siebensegment Anzeige
http://www.ardumotive.com/8-digit-7seg-display-en.html
Maxim7219 Datenblatt
Klicke, um auf MAX7219-MAX7221.pdf zuzugreifen
LedControl Bibliothek
https://github.com/wayoda/LedControl
Dokumentation LedControl Bibliothek
http://wayoda.github.io/LedControl/pages/software
Segmentanzeige
https://de.wikipedia.org/wiki/Segmentanzeige
Anordnung der Segmente / Datenblatt
Klicke, um auf 0900766b81384fae.pdf zuzugreifen
Softwarearchitektur in Mikrocontroller Systemen