4 und 8 Digit Siebensegment am SPI Bus

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
https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf

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
http://docs-europe.electrocomponents.com/webdocs/1384/0900766b81384fae.pdf

Softwarearchitektur in Mikrocontroller Systemen

Prototyping mit dem Arduino

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.