Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Propeller 8 Kern Controller - C Programmierung

  • Weitere Vorschläge zum Thema mit den Boards: Arduino UNO - BASIC Stamp
  • Raspberry Pi: Wer über ein Propeller Board verfügt, kann auch mit Hilfe des RasPi die beschriebenen Propeller-Übungen ausführen. Wie das geht wird hier beschrieben.

Station 7 - 7-Segment-LED Anzeige

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.

Courtesy of Parallax Inc.

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.

Abbildung 1 - Courtesy of Parallax Inc.

Ziele

Wenn du Station 7 durchgearbeitet hast, bist du in der Lage ...

  • den Aufbau einer 7-Segment-Anzeige zu erklären.
  • 7-Segment-Anzeigen mit einem Kontroller anzusteuern.
  • dem Datenblatt des Anzeigemoduls gezielt Informationen zu entnehmen.
  • eine elektronische Schaltung mit einer LED-Anzeige und weiteren Elementen aufzubauen.
  • zu unterscheiden zwischen common-cathode und common-anode Anschlüssen.
  • eine einfache Zählerschaltung zu programmieren und über LED-Anzeige anzuzeigen.

1 - Aufbau einer 7-Segment-Anzeige

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).

Courtesy of Parallax Inc.

Die folgende Abbildung zeigt den inneren Schaltungsaufbau einer 7-Segment-Anzeige.

Abbildung 1 - Innerer Aufbau einer 7-Segment-LED 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.

2 - Aufbau einer Zählerschaltung

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
  • Baue die Schaltung nach Abbildung 2 auf.
  • Gib das Programm 07_01.c ein und speicher es ab.
  • Starte das Programm mit Load RAM & Run.
  • Überprüfe, ob auf dem Display die Zahlen von 0 bis 9 fortlaufend angezeigt werden.

Schaltungsaufbau und Schaltungskizze

 

 

 

 

 

 

 

 

 

 

 

Abbildung 2

Schaltungsaufbau mit 7-Segment-LED Display

Courtesy of Parallax Inc.

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.

Abbildung 3 Zahldarstellungen auf einer 7-Segment-LED Anzeige - Courtesy of Parallax Inc.

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.

3 - Verschiedene Buchstaben auf der Anzeige darstellen

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.

  • Gib für jeden der fünf Buchstaben den entsprechenden Binärcode ein. Male die angezeigten Segmente in der folgenden Tabelle für jeden Buchstaben rot an.
  • Gib das Programm 07_02.c ein und speichere es mit Save Project As ... unter dem Namen 07_02 ab.
  • Starte das Programm und überprüfe es auf Fehler.

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.

4 - Binärcode in einem Array hinterlegen

Aufgabe
  • Schaltungsaufbau nach Abbildung 2.
  • Gib das Programm 07_03.c in den Editor ein und speichere es über Save Project As ... unter dem Namen 07_03 ab.
  • Starte das Programm und überprüfe es auf Fehler.

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.

5 - Lichtmessung mit Fotodiode und 7-Segment LCD Anzeige

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.

Abbildung 4
Aufgabe
  • Übernimm den Schaltungsaufbau für die 7-Segment-Anzeige aus Abbildung 2 und benutze das Programm 07_03.c als Basis für das neu zu entwickelnde Programm.
  • Bringe zusätzlich auf dem Steckbrett die Schaltung für die Lichtmessung mit einem Fototransistor - Übung 4  unter.
  • Entwickle einen neuen Binärcode für das vorgegebene Sonderzeichen und baue es in das bereits bestehende Array als 11. Element mit ein. Beschreibe in deinem Versuchsheft genau (Schritt-für-Schritt-Text in Stichworten), wie du hierbei vorgegangen bist mit Begründung.
  • Überlege dir, an welcher Stelle du in das bereits bestehende Programm 07_03.c die zusätzlichen Programmzeilen unterbringen musst, die dafür sorgen, dass die gemessenen Entladezeiten auf dem Display angezeigt werden, wenn sie unterhalb von 10 ms liegen.

Schaltungsaufbau und Schaltskizze für Lichtmessung mit Fotodiode

Abbildung 5 - Courtesy of Parallax Inc.

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!!!

Druckversion | Sitemap
© Reinhard Rahner - Gettorf