Über die 7-Segment-Anzeige (LED) habe ich hier an anderer Stelle bereits genug gesagt. Über Aufbau, Wirkungsweise und Beschaltung findet man weitere Informationen hier:
In diesem Kapitel wird mit Hilfe der Methode des Charlieplexing eine 7-Segment-Anzeige angesteuert.
Übung 1 - 7-Segment-Anzeige und Charlieplexing
In dieser Übung wird zunächst eine Anzeige angesprochen und das Verfahren der Ansteuerung beschrieben und erlernt.
Übrung 1 - 7-Segment-LED-Anzeige und Charlieplexing | |
Material |
|
Aufgaben |
|
Die Pinbelegung der benutzten 7-Segment-Anzeige
Schaltskizze zur Übung 1
Der Aufbau auf einem P2-Edge Breadboard
Abb. 3
Aufbau der zwei LED-Anzeigen auf einem P2-Edge Breadboard der Fa. Parallax.
Das Bild zeigt die Bedrahtung einer Anzeigeehinheit.
Die Beschriftung der Stecklöcher entspricht der Pinbelegung des P2 Mikrocontrollers. Jeweils acht Anschlusspins verfügen über eine separate Stromversorgung. Die Anschlusspins P32-P39 lassen sich über die GND- und V32-Buchsen mit der separaten Energiequelle verbunden.
P24 - P31 entsprechend über die Buchsen GND und V24.
Das Programm Charlieplexing_uebung1.sp2
Wie arbeitet das Programm Charlieplexing_uebung1.sp2 ?
Programmzeilen 15 und 17
P35 wird auf 1, P37 auf 0 gezogen. Damit ist die LED im Segment b der 7-Segment-Anzeige eingeschaltet (s. Abb. 2) und leuchtet 100 ms.
Programmzeilen 18 bis 22
P35 und P37 werden hochohmig, das Segment b erlischt; P27 wird auf 1 und P26 auf LOW gesetzt. Segment c wird 100 ms eingeschaltet.
Im weiteren Programmablauf werden die Segmente d, e, f und a in gleicher Weise behandelt.
Es entsteht - nach Programmstart - der Eindruck eines im Uhrzeigersinn umlaufenden Segments -> hier kannst du ein Kurzvideo (10 s) anschauen.
Übung 2 - Gegenläufig rotierende Segmente mit 2x LED-7-Segment-Anzeigen
In dieser Übung werden zwei LED 7-Segment-Anzeigen so miteinander verdrahtet, dass sie charlieplexed von einem Propeller P2 angesteuert werden können.
Übrung 2 - Gegenläufige Segmentbewegungen auf 2 LED 7-Segment-Anzeigen | |
Material |
|
Aufgaben |
|
Schaltskizze zur Übung 2
Der Aufbau auf einem P2-Edge Breadboard
Das Programm Segmentmuster.sp2 (Teilausschnitt)
Legt man die Daten für jedes Segment in den beiden 7-Segment-Anzeigen in einer Look Up Tabelle ab, lassen sich sehr schnell beliebig viele unterschiedliche Muster auf den Anzeigen generieren. Wie das funktioniert, wird exemplarisch an zwei Beispielsegmenten beschrieben.
Übung 3 - Eine Look Up Tabelle für die Anzeigensegmente erstellen (schwer)
Muster lassen sich sehr gut in sogenannten Loop Up Tabellen ablegen und dann geschlossen über ein Unterprogramm aufrufen. Dies wird an dem vorliegenden Beispiel gezeigt.
Mit der Befehlsfolge
aus den Programmzeilen 15 und 16 (s. Abb. 6) wird das Segment „b“ in der 7-Segment-Anzeige eingeschaltet oder auf 1 gezogen. Vergleiche hierzu Abb. 4, in der die Anode der Diode des Segmentes b im linken Anzeigemodul mit Pin 35 und die Kathode mit Pin 37 des P2-Controllers verbunden ist. Die Anschlusspins größer 30 sind mit dem GND-Pin 37 und die mit den Anschlusspins kleiner 30 mit Pin 26 verbunden. Das Zeichen „$“ in der Befehlsanweisung weist auf eine hexadezimale Schreibweise hin.
Die Anschlussbelegung von Anode und Kathode wird in einem nächsten Schritt codiert. Da wir im 16-er Code arbeiten (hexadezimal), wird zunächst geschaut, dass Wievielfache von 16 in den beiden Zahlen steckt (sog. Additionsfaktor). Aus
Die Zahl
gibt dann in ihrer 16-er Stelle den Anodenpin und in der 1-er Stelle den Kathodenpin an. Ich muss dazu nur zu jeder Ziffer die Zahl 32 addieren. Beide Pinbelegungen sind in einer Zahl hinterlegt.
Die Befehlsfolgen
der Programmzeilen 23 und 24 werden so codiert zu
Dies entspricht der Beschaltung des LED-Segmentes „b“ aus der rechten Anzeige (bitte selbst überprüfen!). Beachtet werden muss, dass der Kathodenanschluss der rechten Anzeigeeinheit für alle Pins größer als 29 Pin 32 und für alle kleiner als 30 Pin 29 ist.
Die Befehlszeilen
(Programmzeilen 18 und 19) setzen beide Anschlusspins auf „hochohmig“. Die vorher leuchtende LED erlischt.
Im nachfolgend gezeigten Programm ist ein leicht erweitertes Muster umgesetzt worden. Die beiden Bewegungen auf den Anzeigen bewegen sich gegenläufig im Kreis und beschreiben noch einen kleinen Schlenker.
Das folgende kurze Video (10 s) zeigt den erweiterten Verlauf.
Das zugehörige - deutlich übersichtlichere - Programm sieht dann wie folgt aus:
Das Programm Segmentmuster_mit_LUT.sp2
Im DAT-Block befinden sich die codierten Angaben zum gezeigten Muster. In den Kommentarzeilen wird mit dem großen Buchstaben angegeben, ob das rechte (R) oder linke (L) Anzeigemodul angesprochen wird. Der nachfolgende kleine Buchstabe verweist auf das Segment der Anzeige und die nachfolgende Ziffer 3 oder 1, ob es sich um den Additionsfaktor 32 (3) oder 16 (1) handelt.
Die im Hauptprogramm main() aufgerufenen Unterprogramme M1, M2 und M3 zeigt nachfolgende Abbildung.
Der in Befehlszeile 34 unde 51 auftauchende Sequenz
ist ein modulo Befehl und besagt soviel:
tritt bei Division der Zahl zaehler durch 2 kein Rest auf (dies ist nur bei geraden Zahlen der Fall), so führe die nachfolgenden Blockbefehle aus.
Das auf den beiden 7-Segment-Anzeigen laufende Muster kann hier als Film angesehen werden (10s).
Auf das Programm wird nicht weiter eingegangen. Wer daran interessiert ist, sollte sich mit den hier gegebenen Hinweisen selbst "durchbeissen".
Fehlender Teil des Programms aus Übung 2