Die sieben Segmente

Nein, das ist kein reisserischer Titel aus einem neuen Hollywood-Streifen. Wie ich in der letzten Folge ja kurz erwähnt habe, will ich die Anzeige der Uhrzeit des Weckers mit 7-Segment-Anzeigen realisieren. Jeder von uns, der nicht ganz blind durch die Gegend läuft, hat sicher schon einmal welche gesehen. Sei es in handelsüblichen Weckern, Küchenradios, Waagen oder ähnlichen, so hat sich diese Art von Luminiszenz-Anzeigen bis heute gehalten. Dies liegt nicht zuletzt an der optischen Attraktivität und der einfachen Handhabung. Die Geschichte dieser Anzeigen reicht bis ins Jahr 1908 zurück. Auf Wikipedia gibt es hierzu einen hervorragenden Artikel. Im untenstehenden Bild sieht man ein handelsübliches 7-Segment Anzeigeelement mit 27mm Bauhöhe in der Farbe rot.

Red

Red

In diesem Projekt soll diese Anzeige zur Darstellung der Uhrzeit verwendet werden. Um also beispielsweise die Uhrzeit ohne Sekunden anzuzeigen, benötigen wir derer vier. Sollen noch die Sekunden dargestellt werden sind es sechs. Aus Platzgründen verzichte ich auf die Sekunden, ich habe allerdings auch noch keinen klassischen Digitalwecker gesehen, der die Sekunden mit angezeigt hat.

Schon haben wir das erste Problem: Wollen wir 4 Elemente parallel ansteuern, so benötigen wir, wenn wir den Dezimalpunkt mitrechnen mindestens 8 Leitungen, Masse und Versorgungsspannungen nicht mitgerechnet. Somit wären also 32 Leitungen nötig, die von einem Mikrocontroller angesteuert werden wollen. Wenn man also noch eine serielle Schnittstelle und ein paar Buttons und Statusleuchten benötigt, ist man da schnell bei 40 Leitungen oder mehr. Hier muss also eine Lösung her, um den Leitungsaufwand zu reduzieren. Hier kommt das Multiplexing ins Spiel.

Multiplexing heisst im Grunde nichts anderes, als daß nicht alle Anzeigeelemente parallel angesteuert werden, sondern immer nur eins zu einem bestimmten Zeitpunkt. Der Mikrocontroller weiss, welches Segment gerade aktiv ist und schaltet die entsprechenden Leitungen für die jeweilige Ziffer. Dann wird auf das nächste Element weitergeschaltet und die nächste Ziffer dargestellt. Da 7-Segment-Anzeigen entweder über eine gemeinsame Katode oder eine gemeinsame Anode verfügen, schaltet man zyklisch die gewünschte Katode auf Low oder eben die Anode auf High. Die zyklische Umschaltung erfolgt dann eben schnell genug, so daß das menschliche Auge das nicht mehr mitbekommt. Im Idealfall schaltet man also mit mindestens 25 Hz die Segmente um, sonst ist ein Flimmern sichtbar.

7-Segment Multiplexing

7-Segment Multiplexing

In dem obigen Schaltungsauszug kann man das Prinzip gut erkennen: Die dicke blaue Leitung ist ein Bus, der zum Mikrocontroller führt und alle 8 Leitungen der Anzeige führt (a bis f plus Dezimalpunkt). Das von mir verwendete Modul verfügt über eine gemeinsame Anode und diese muss somit gegenüber dem jeweiligen Segment auf High geschaltet werden. Hierzu verendet man ainfach einen NPN Transistor mit entsprechendem Basisvorwiderstand, der vom Controller über die Basis geschaltet wird. Auf diese Weise reduziert sich der Leitungsaufwand auf 12 Leitungen für die ganze Anzeige, was auch mit kleineren Mikrocontrollern problemlos bewerkstelligt werden kann.

In der nächsten Folge wollen wir uns dann ansehen, wie das ganze in der Praxis und vor allem auf dem Mikrocontroller aussieht.