Mit Hilfe einer 7-Segment-Anzeige und einem Propeller-Kontroller lassen sich Zahlen darstellen. Das dazu verwendete Anzeigenmodul ist in vielen Geräten des täglichen Gebrauchs eingebaut, wie zum Beispiel: elektronische Wecker, Mikrowellengeräte, elektronische Heizthermostate und in den Preisanzeigen an Tankstellen.
Eine 7-Segment-LED Anzeige besteht aus sieben LEDs (Segment A - Segment H), die in einer speziellen Geometrie so angeordnet sind, dass sich alle Ziffern von 0 bis 9 darstellen lassen. In dieser Station erfährst du alles über den Aufbau und die Ansteuerung einer 7-Segment-Anzeige und wir werden am Ende einen Zähler bauen.
Ziele
Wenn du Station 7 durchgearbeitet hast, bist du in der Lage ...
Eine 7-Segment-Anzeige ist ein quaderförmiger Block mit sieben geometrisch angeordneten gleichlangen Leuchtdioden (A - G), die einzeln ein- bzw. ausgeschaltet werden plus einen Dezimalpunkt (DP). Die Pinbelegung zeigt, dass die meisten Anschlusspins mit einer Zahl und einem Buchstaben, der für ein LED-Segment steht, gekennzeichnet sind. Pin 5 bezeichnet den Doppelpunkt (DP).
Die folgende Abbildung zeigt den inneren Schaltungsaufbau einer 7-Segment-Anzeige.
Jede Anode der LEDs ist mit einem separaten Pin verbunden, während alle Kathoden miteinander verbunden sind (gemeinsame Kathode oder common cathode). Eine solche 7-Segment-Anzeige wird auch als Anzeige mit gemeinsamer Kathode bezeichnet.
Zwischen jedem LED-Segment einer 7-Segment-Anzeige und einem Propeller I/O Pin muss ein Strombegrenzungs-Widerstand eingebaut werden um den Kontroller nicht zu überlasten. Werden alle sieben I/O Pins gleichzeitig auf 1 (3,3 Volt) gesetzt, leuchten alle Segmente der Anzeige auf, es fließt ein Maximalstrom, der die vorgegebenen Belastungsdaten des Propeller-Kontrollers nicht überschreiten darf. Jeder Widerstand zwischen 100 Ohm und 1 kOhm kann als sogenannter Vorwiderstand genommen werden. Dabei gilt: je geringer der Widerstandswert, desto heller leuchtet die LED, desto stärker ist aber auch der Stromfluss.
Aufgabe |
|
Schaltungsaufbau und Schaltungskizze
Das Programm 07_01.c
Wie funktioniert das Programm 07_01.c?
Zeile 12
die Ports 8 - 15 werden auf Ausgang gesetzt.
set_directions(15, 8, 0b11111111)
Zeile 13:
für die Darstellung der Zahl 0 müssen die Segmente A - F der 7-Segment-Anzeige auf 1 gesetzt werden. Nach dem Schaltungsaufbau entsprechen den einzelnen Segmenten die folgenden Portanschlüsse des Controllers:
Zeile 15ff
Für alle anderen Ziffern müssen ähnliche Überlegungen angestellt werden.
Auf 7-Segment-Anzeigen lassen sich neben den Ziffern von 0 bis 9 auch einzelne Buchstaben darstellen. In Industriegeräten werden bei Textdarstellungen sogenannte alphanumerische Displays eingesetzt, die nach dem gleichen Prinzip wie 7-Segment-Anzeigen arbeiten aber insgesamt 16 LED-Segmente enthalten.
Weitere Anregungen zur Darstellung von Ziffern, Buchstaben und Sonderzeichen auf einer 7-Segment-Anzeige findest du unter der angegebenen englischsprachigen URL:
http://en.wikipedia.org/wiki/Seven-segment_display_character_representations.
Aufgabe |
Versuche selbst ein Programm zu schreiben, das die Buchstaben A, b, c, d und E auf der 7-Segment-Anzeige anzeigt. Benutze den Schaltungsaufbau nach Abbildung 2.
|
Alphanummerischer Binärcode
Tipp
Statt jede Ziffer einzeln im Hauptprogramm aufzurufen, wie wir es im letzten Programm gesehen haben, lässt sich der Binärcode jeder einzelnen Ziffer auch in einem Array hinterlegen. Zur Darstellung einer beliebigen Ziffer auf dem 7-Segment-Display genügt ein Aufruf des entsprechenden Feldelementes. Das folgende Programm zeigt das.
Aufgabe |
|
Das Programm 07_03.c
Wie funktioniert das Programm 07_03.c?
Diesmal sollst du selber versuchen, den Programmcode zu erklären. Gib für jede Programmzeile eine klare Auskunft darüber, was das Programm macht.
Im Kapitel über Lichtsensoren wurde die Lichtintensität mit einem Fototransistor über die Entladezeit eines Kondensators gemessen. Versuche, die 7-Segment-LED-Anzeige und den Versuchsaufbau zur Lichtmessung mit einem Fototransistor zu kombinieren mit Übung 3.
Die Entladezeit soll auf dem Display angezeigt werden. Da sie, je nach Lichtintensität, sehr kurz oder sehr lang sein kann, wird eine Schranke eingebaut. Liegt die Entladezeit über 9 ms, dann soll auf dem Display ein Sonderzeichen (Abb. 4) angezeigt werden. Liegt die Entladezeit unter 10 ms, wird der ganzzahlige Wert angezeigt.
Aufgabe |
|
Schaltungsaufbau und Schaltskizze für Lichtmessung mit Fotodiode
Zusatzaufgabe
Schreibe ein Programm, das auf dem Display einer 7-Segment-Anzeige ein Segment auf dem äußeren Kreis im Uhrzeigersinn laufen lässt; Start ist beim Segment A. Baue zusätzlich einen Taster ein (P0). Immer dann, wenn er gedrückt wird, dreht sich die Umlaufrichtung um. Aus einer Rechts- wird eine Linksdrehung und umgekehrt.
Wenn du alle sieben Lektionen mit dem Propeller Controller in dieser Rubrik durchgearbeitet hast, sind deine Kenntnisse über die Hardware und die Programmiersprache C hervorragend. Herzlichen Glückwunsch!!!