Siebensegment Anzeige am I2C Portexpander

Da es mit den LED’s schon so gut geklappt hat, versuche ich es mal mit speziellen LED’s: einem Siebensegment Display. Auch die kann man natürlich beliebig ansteuern, sinnvoll sind aber lesbare Zeichen.

Die Hardware
Auch hier ausgehend von einem Arduino Uno
– ein I2C Display Treiber mit einem PCF8574 Chip
– ein Darlington Treiber UDN2981
– Ein einstelliges Siebensegment Display plus Vorwiderstände

Der Protoyp Stufe 1
Auf einem Breadboard gesteckt läuft die Schaltung auf Anhieb. Auch hier brauche ich wieder den 10KOhm Widerstand zwischen +5V und Port3 (Pin16), um Port3 auch Schalten zu können. Ausserdem muss ich die Ausgaben für Port3 invertieren. Das ist eine Eigenheit des verwendeten LCD Treibermoduls (PCF8574 Portexpander). Allerdings habe ich diesmal durch die Siebensegmentanzeige eine gemeinsame Kathode vorgegeben und brauche daher einen anderen Darlington Treiber mit gemeinsamer Anode.


Die Schaltung auf dem Breadboard

Die Software
Erst einmal ist es wichtig alle darstellbaren Zeichen auch ausgeben zu können. Das sind:

Ziffern
0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Große Buchstaben
A, C, E, F, G, H, I, J, L, U, P, Y

kleine Buchstaben
b, c, d, h, n, o, r, t, u

Sonderzeichen
-, _ ,“ ,!

Des weiteren ist jedes Segment einzeln ansteuerbar für beliebige Ausgaben, z.B. drehende Kreise (Warten) oder was auch immer. Zusätzlich lassen sich auch alle Segmente ausschalten, das entspricht einem leeren, gelöschtem Display.

Der Prototyp Stufe 2
Umgebaut auf Lochrasterplatine waren erst einmal 2 Kurzschlüsse zu finden. Da waren zwei LED’s, die entweder beide an oder aus waren. Danach lief die Software auch hier problemlos.


Die Schaltung auf dem Lochraster. Der Darlington Treiber befindet sich unter dem I2C LCD Treiber Modul.

Der Sketch
I2C_7SEG_Steuerung_8574

Fazit
Diese Schaltung ist speziell für den acht Bit Display Treiber mit dem PCF8574 gestaltet. Benutze ich z.B. einen Display Treiber mit einem MCP23017, dann entfällt der 10 KOhm Widerstand und die Invertierung. Bei einem Keypadshield z.B. von Adafruit kann ich dann zehn Bit nutzen und habe noch fünf Tasten für eine Eingabemöglichkeit.

Links

I2C Display Treiber Schematic
https://www.sunrom.com/m/4585

Achtfach Darlington Array Datasheet UDN2981

Klicke, um auf UDN2981-2.PDF zuzugreifen

Segmentanzeige
https://de.wikipedia.org/wiki/Segmentanzeige

Siebensegmentanzeige
https://rn-wissen.de/wiki/index.php?title=Siebensegmentanzeige

Prototyping mit dem Arduino
Prototyping mit dem Arduino

Ein Keypadshield als Portexpander nutzen
Ein Keypadshield als Portexpander am Digispark nutzen

LED Ausgabe am I2C Portexpander
LED Ausgabe am I2C Portexpander

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.