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

1 - 7-Segment-LED Display

  • Weitere Vorschläge zum Thema mit den Boards: Arduino UNO - Prop-BoE - Prop-AB - Raspberry Pi

Displays informieren

 

Abbildung 6.1 zeigt das Display einer Mikrowelle. Im nicht benutzten Zustand erscheint dort die aktuelle Uhrzeit. Wird eine Mikrowelle aktiviert, zeigt es die Timerzeit mit der gewählten Programmeinstellung. Ist die Garzeit abgelaufen, beginnt es zu blinken, sobald der Alarm ertönt. Ein Mikrocontroller in der Gerätetür überwacht die Tastenfelder und aktualisiert die Anzeige. Ebenso überwacht er Sensoren im Gerät und bedient Schalter, die das Heizelement ein- und ausschalten. 

 

 

 

Abbildung 6.1

Digitaluhr mit 7-Segment-Anzeige

Courtesy of Parallax Inc.

2 - Aufbau einer 7-Segment-Anzeige

 

Eine 7-Segment-Anzeige ist ein quaderförmiger Block mit 7 geometrisch angeordneten gleichlangen Leuchtdioden, die einzeln zum Leuchten gebracht werden können. Abbildung 6.2 zeigt eine Bauteil-darstellung einer sehr häufig benutzten 7-Segment-LED Anzeige, die wir in den Übungen dieses Kapitels einsetzen werden. Eine zusätzliche LED, kann als Dezimalpunkt ebenfalls genutzt werden.

Jedes Segment (A bis G) und der Punkt repräsentiert jeweils eine LED, die einzeln angesteuert werden kann. Die meisten Anschlusspins sind mit einer Zahl und einem Buchstaben, der für ein LED-Segment steht, gekennzeichnet. Pin 5 (DP) bezeichnet den Dezimalpunkt. Pin 3 und 8 (common cathode) wird erklärt, sobald wir uns die Schaltung dieses Bauteils anschauen.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Abbildung 6.2

7-Segment LED Display Baustein mit Pinbelegung

Courtesy of Parallax Inc.

Pinbelegung 

Abbildung 6.2 zeigt ein Beispiel für eine Pinbelegung. Sie gibt nützliche Informationen zur Beschaltung des Bauteils. Pinbelegungen weisen jedem Pin eine Zahl, einen Buchstaben und einen Bezug zu; siehe Abbildung 6.2. Jeder Pin ist nummeriert und korrespondiert mit einer bestimmten Segmentbezeichnung. Der Bezug wird durch die Draufsicht auf das Bauteil hergestellt. Aus ihr ergibt sich, dass Pin 1 unten links am Display zu finden ist. Andere Bauteile weisen raffiniertere Bezüge aus, wie zum Beispiel die Abflachung an einer LED. 

Abbildung 6.3 zeigt den inneren Schaltungsaufbau einer 7-Segment LED Anzeige. Jede Anode der LEDs ist mit einem separaten Pin ver- bunden, während die Kathoden miteinander verbunden sind (gemein- same Kathode). Aus diesem Grund wird eine solche 7-Segment-Anzei- ge auch als Anzeige mit „gemeinsamer Kathode“ bezeichnet. Wird Pin 3 oder Pin 8 mit Vss verbunden, sind alle LED-Kathoden mit Vss verbunden. 

 

 

Abbildung 6.3

7-Segment-LED-Anzeige

Schaltungsaufbau

3 - Testschaltung mit einer 7-Segment Anzeige

 

In dieser Übung werden Schaltungen aufgebaut, mit denen sich einzelne Segmente einer 7-Segment-Anzeige testen lassen. 

Material

1x   Board of Education

1x   mini-USB Kabel

1x   7-Segment LED Anzeige

5x   Widerstände – 1 kOhm (braun-schwarz-rot)

5x   Steckdrähte

Testschaltung: 7-Segment Anzeige

Aufgabe
  • Stelle den Power-Schalter auf 0 und baue die Schaltung aus Abbildung 6.4 oder 6.5 auf. 
  • Stelle den Power-Schalter auf 1 und überzeuge dich, dass das Segment A aufleuchtet.

 

 

 

 

 

 

 

 

 

 

 

Abbildung 6.4

Schaltungsaufbau der Testschaltung für das Segment A in einer 7-Segment-LED Anzeige

Courtesy of Parallax Inc.

 

 

 

 

 

 

 

 

Abbildung 6.5

Schaltungsaufbau für die Testschaltung zur Anzeige des A-Segmentes in einer 7-Segment-LED Anzeige

Courtesy of Parallax Inc.

Welche Bedeutung hat das x und die Beschriftung nc in den Schaltbildern?

nc steht für not connected oder no connect. Damit wird gesagt, dass ein bestimmter Anschluss der 7-Segment-Anzeige nicht verbunden ist oder offen bleibt.

Das x im Schaltbild ist ein weiteres Zeichen für nc. In Schaltbildern werden beide Darstellungen gleich häufig verwendet.

Aufgabe
  • Trenne die Spannungsversorgung und verändere die Schaltung so, dass der Widerstand mit dem LED-Seg- ment B verbunden wird, wie in Abbildung 6.6 und 6.7 gezeigt. 
  • Lege die Spannung wieder an und überprüfe, ob das B-Segment aufleuchtet. 
  • Benutze die Pinbelegung aus Abbildung 6.2 als Hilfe, um die anderen Segmente C bis G zum Leuchten zu bringen.

 

 

 

 

 

 

 

 

 

 

Abbildung 6.6

Schaltungsaufbau der Testschaltung für das Segment B in einer 7-Segment-LED Anzeige

Courtesy of Parallax Inc.

 

 

 

 

 

 

 

 

Abbildung 6.7

Schaltungsaufbau für die Testschaltung zur Anzeige des B-Segmentes in einer 7-Segment- LED Anzeige

Courtesy of Parallax Inc.

Jetzt kommst du!  -  Der Buchstabe A und die Zahl 3

Abbildung 6.8 und Abbildung 6.9 zeigen, wie die Zahl 3 bei einer 7-Segment-LED Anzeige verdrahtet werden muss.

Aufgabe
  • Baue die Schaltung nach Abb. 6.9 auf und überprüfe, ob die Zahl 3 dargestellt wird.
  • Erstelle eine neue Schaltskizze, die die Zahl 5 auf dem 7-Segment-LED Display darstellt.
  • Baue die Schaltung nach deiner Schaltskizze auf und bringe die Schaltung zum Laufen. Gegebenenfalls musst du den Fehler suchen, wenn es nicht auf Anhieb klappt.
  • Entwickle ebenso einen Schaltplan für den Buchstaben A; baue die Schaltung auf dem Steckbrett auf und teste sie.

Schaltskizze und Schaltungsaufbau

 

 

 

 

 

 

 

 

 

 

Abbildung 6.8

Schaltskizze für die Darstellung der Zahl 3 auf einem 7-Segment-LED Display.

Courtesy of Parallax Inc.

 

 

 

 

 

 

 

 

Abbildung 6.9

Schaltungsaufbau zur Schaltskizze aus Abb. 6.8

Courtesy of Parallax Inc.

4 - Eine 7-Segment-LED Anzeige ansteuern

In dieser Aufgabe werden wir eine 7-Segment-LED Anzeige mit einer BASIC Stamp ansteuern und mit einem kleinen Programm testen, ob alle Segmente der Anzeige funktionsfähig sind.

Material

1x Board of Education

1x mini-USB Kabel

1x 7-Segment-LED Anzeige

8x Widerstand – 1kOhm (braun-schwarz-rot)

5x Verbindungsdrähte

 

Eine 7-Segment-LED Anzeige mit der BASIC Stamp verbinden

Abb. 6.11 zeigt die Schaltskizze und Abb. 6.12 den Schaltungsaufbau für dieses Übungsbeispiel.

Schaltskizze und Anschlussbelegungsplan

Wer seine Schaltung nur nach der Schaltskizze aufbauen möchte, sollte sich die An- schlussbelegung einer 7-Segment-LED Anzeige danebenlegen. Abb. 6.10 zeigt sie noch einmal.

 

 

 

 

 

 

 

 

 

 

 

 

Abbildung 6.10

Anschlussbelegung bei einer 7-Segment-LED Anzeige

Courtesy of Parallax Inc.

 

 

 

 

 

 

 

 

 

 

Abbildung 6.11 

Schaltskizze einer 7-Segment-LED Anzeige, die mit einer BASIC Stamp ver- bunden ist.

 

 

 

 

 

 

 

 

 

 

Abbildung 6.12

Schaltungsaufbau nach der Schaltskizze aus Abb. 6.11

Courtesy of Parallax Inc.

Eine 7-Segment-LED Anzeige wird parallel von der BASIC Stamp angesteuert. Damit ist gemeint, dass der Kontroller über mehrere I/O Leitungen Daten (HIGH, LOW Informationen) an das Anzeigelement schickt. Bei einer 7-Segment-LED Anzeige sind dazu 8 I/O Anschlüsse notwendig, um alle Darstellungen auf dem Display vornehmen zu können.

 

Parallel Bus  Die Verbindungsleitungen, über die die HIGH/LOW Signale von der BASIC Stamp zur 7-Segment-LED Anzeige übertragen werden, bezeichnet man summarisch als Parallel-Bus. In Abb. 6.11 sind diese Verbindungsleitungen parallel gezeichnet.

Testprogramm zur Ansteuerung einer 7-Segment-LED Anzeige

Die HIGH und LOW Signale werden mit Hilfe einer Pin-Direktive innerhalb einer FOR…NEXT Schleife aufgerufen und so jedes Segement des Displays nacheinander angesteuert.

Aufgabe
  • Gib das Programm Test7Segment.bs2 ein.
  • Starte das Programm.
  • Überprüfe, ob jedes Segment des Displays kurz aufleuchtet und wieder erlischt.
  • Stelle eine Liste auf, in der aufgeführt ist, welches Segment welchem I/O Pin zugeordnet ist.

Programm Test7Segment.bs2

Programm Test7Segment.bs2

Jetzt kommst du!

Eine interessante Wirkung erzielt das Auskommentieren der Befehlszeile LOW pinzaehler. Das führt uns zu einer neuen Aufgabe.

Aufgabe
  • Kommentiere die Programmzeile LOW pinZaehler aus, indem ein Apostroph an den Anfang der Zeile gesetzt wird.
  • Starte das veränderte Programm und beobachte die Wirkung. Kannst du eine Erklärung geben?

5 - Darstellung ganzer Zahlen

Rechnet man den Dezimalpunkt hinzu, dann werden 8 verschiedene I/O Anschlüsse der BASIC Stamp benötigt, um eine 7-Segment-LED Anzeige anzusteuern. Acht verschiedene HIGH/LOW Signale werden für die Darstellung einer einzigen Zahl benötigt.

Ein Zähler, der von 1 bis 9 hochzählen soll, benötigt schon sehr viel Programmieraufwand. Glücklicherweise gibt es spezielle Variablen, mit denen sich gleich mehrere HIGH/LOW Signale als sogenanntes Gruppensignal setzen lassen. Darum kümmern wir uns jetzt.

In dieser Übung verwenden wir Zahlen in binärer Zahldarstellung, statt der bisher üblichen HIGH/LOW Befehle. Die dazu neuen Befehle lauten:

 

  • DIRH
  • OUTH

 

Mit ihrer Hilfe können wir zukünftig mit einem Befehl 8-bit gleichzeitig auf HIGH oder LOW setzen. Das reicht aus, um auf einer 7-Segment -LED Anzeige eine beliebige Zahl durch einen einzigen Befehl auszugeben.

8 Bit

Eine binäre Zahl, die sich aus 8 Nullen und Einsen zusammensetzt, ist eine sogenannte 8-Bit Zahl, oder wir sagen auch, sie hat 8 Bit. Jedes Bit ist wie ein Speicher, in den man eine Null oder eine Eins ablegen kann.

Byte

Acht Bit ergeben ein Byte. Mit 8 Bit lassen sich 256 verschiedene Zahlen aus Nullen und Einsen zusammensetzen. Eine Variable vom Typ Byte kann deshalb auch nur die Zahlen zwischen 0 und 255, also insgesamt 256 verschiedene Zahlen, darstellen.  

Material wie in Übung 2

Muster von Ein/Aus Zuständen mit Hilfe von binären Zahlen programmieren

Wir benutzen in dieser Übung die beiden neuen Variablen DIRH und OUTH. Die Variable DIRH gibt in diesem Beispielprogramm die Richtung für I/O Pinanschlüsse von P8 bis P15 vor. OUTH legt fest, welcher Pin auf HIGH (Ausgang) und welcher auf LOW (Eingang) gesetzt wird.

OUTH ist ein kräftiger Befehl, da er gleichzeitig acht verschiedene I/O Ausgänge auf  HIGH bzw. LOW setzt.

Im folgenden Beispielprogramm wird gezeigt, wie die beiden neuen Befehle in einem Zähler, der auf einem 7-Segment-LED Display von 0 bis 9 zählt, eingesetzt werden, ohne HIGH/LOW Befehle zu benutzen.

Beispielprogramm: ZahlenAnzeigen.bs2

In diesem Beispielprogramm werden auf einer 7-Segment-LED Anzeige nacheinander die Zahlen von 0 bis 9 dargestellt.

Aufgabe
  • Gib das Programm ZahlenAnzeigen.bs2 ein und speicher es anschließend auf einem Stick ab.
  • Starte das Programm ZahlenAnzeigen.bs2
  • Überprüfe, ob die Zahlen von 0 bis 9 nacheinander angezeigt werden.

Programm ZahlenAnzeigen.bs2

Programm ZahlenAnzeigen.bs2

Wie arbeitet das Programm ZahlenAnzeigen.bs2?

Abbildung 6.13 zeigt, wie sich mit den beiden Variablen DIRH und OUTH die Richtung und der Zustand (HIGH/LOW) der I/O Pins P8 bis P15 einstellen lassen.

 

 

 

 

 

 

 

 

 

 

Abbildung 6.13

Mit DIRH und OUTH werden alle Ausgänge auf LOW gesetzt.

Courtesy of Parallax Inc.

Der erste Befehl

OUTH = %00000000

… setzt die PIN P8 bis P15 auf LOW; damit werden alle LEDs in einem 7-Segment Display ausgeschaltet. Umgekehrt würde ein Befehl OUTH = %11111111 alle I/O Pin auf HIGH setzen und damit alle LEDs ein- schalten.

Wofür steht das Zeichen %?  Das Prozent-Zeichen (%) ist für den BASIC Stamp Editor ein Hinweis darauf, dass die nachfolgenden Ziffern eine binäre Zahl darstellen. Beispiel: die binäre Zahl %00001100 entspricht im Zehnersystem der Zahl 12. Du wirst in dieser Übung erkennen, dass die Benutzung binärer Zahlen manche Programmier-aufgaben wesentlich vereinfachen können.

 An den I/O Pin steht solange kein LOW-Signal, bis die Variable DIRH die I/O Pin vom Zustand Eingang auf Ausgang umgeschaltet hat. Der Befehl dazu lautet:

 

DIRH = %11111111

 

…und setzt die I/O Pin P8 bis P15 auf Ausgang. Sobald dieser Befehl ausgeführt wird, steht an P8 bis P15 das Signal LOW, weil die Variable OUTH vorher auf %00000000 gesetzt worden war.

Bevor aus einem I/O Pin ein Ausgang wird

Solange die Signalrichtung der I/O Pin nicht von Eingang auf Ausgang geändert wird, werden die an den Pin anliegenden Eingangssignale in einer Variablen INH ständig aktualisiert; sie enthält  IN8, IN9 bis einschließlich IN15. Diese Variablen lassen sich in ähnlicher Weise nutzen, wie IN3 und IN4 beim Lesen von Tastern in Übung 4 im Kapitel Miniatur-Drucktaster.

 

Alle I/O Pin einer BASIC Stamp sind bei einem Programmstart als Eingänge geschaltet

Ein BASIC Stamp I/O Pin muss als Ausgang definiert werden, bevor man ein HIGH oder LOW Signal an ihn übertragen kann. Die Befehle HIGH und LOW setzen automatisch die Datenrichtung eines BASIC Stamp I/O Pin auf Ausgang. Eine 1 in der Bitfolge der Variablen DIRH setzt den entsprechenden I/O Pin auf Ausgang.

Bevor ein Pin über einen entsprechenden Zahleintrag im DIR Register als Ausgang geschaltet wird, sollte in das korrespondierende OUT Register ein Zahlenwert geschrieben werden.

 

Beispiel: Schauen wir uns die folgende Befehlsfolge an.

DIR5 = 1

OUT5 = 1

PBASIC setzt bei Programmstart alle Variablen und Register auf 0, somit ist auch OUT5 = 0.  Mit DIR5 = 1 wird zunächst Pin 5 auf Ausgang gesetzt und - da das Register OUT5 mit dem Wert 0 initialisiert wurde - liegt zunächst ungewollt eine Null an Pin5. Dieser Zustand wird erst mit dem folgenden Befehl OUT5 = 1 geändert. Besser ist die umgekehrte Reihenfolge der Befehle:

OUT5 = 1

DIR5 = 1

Am I/O Pin liegt ein HIGH-Signal an, sobald er über DIR als Ausgang geschaltet wird.

 

Abb. 6.14 zeigt, wie die Variable OUTH eingesetzt wird, um HIGH/LOW Signale an P8 bis P15 zu legen. Eine binäre 1 steht für ein HIGH- und eine 0 für ein LOW-Signal. Das dargestellte Beispiel zeigt die Zahl drei auf dem 7-Segment-LED Display (das Display steht auf dem Kopf).

 

 

 

 

 

 

 

 

 

 

 

 

Abbildung 6.14

Mit dem Befehl OUTH werden HIGH/LOW-Pegel an P8 bis P15 gelegt.

Courtesy of Parallax Inc.

Die Pfeile unterhalb des Bildes zeigen auf die Portpin, die mit den Segmenten des 7-Segment-LED Displays korrespondieren. Der Befehl

OUTH = %11010110

setzt PIN P8, P11 und P13 auf 0 und P9, P10, P12, P14 und P15 auf 1. Die Kommentarzeile über dem Befehl OUTH ... (direkt unterhalb der Pfeile) in Abbildung 6.14 zeigt die angesprochenen Segmente innerhalb der 7-Segment-LED-Anzeige.

Die Befehle HIGH und LOW

HIGH 15 setzt sich zusammen aus OUT15 = 1
                                      DIR15 = 1

LOW 15 setzt sich zusammen aus  OUT15 = 0
                                DIR15 = 1

Soll P15 zu einem Eingang werden, geschieht dies mit DIR15 = 0. Mit IN15 lassen sich die high/low Signale auslesen.

 

 

Jetzt kommst du!

Aufgabe
  • Bestimme die Bitfolgen für die Darstellung der Buchstaben: A, b, C, d, E und F.
  • Veränder das vorhergehende Programm so, dass die genannten Buchstaben auf dem 7-Segment-LED Display dargestellt werden.

Dezimal vs. Hexadezimal

Die 10 Ziffern des Zehnersystems (10-er Basis) sind: 0, 1, 2, 3, 4, 5, 6, 7, 8, und 9.

Im Hexadezimalsystem (16-er Basis) lauten die 16 Ziffern: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 

Die 16-er Basis wird intensiv sowohl in der Computer- als auch der Mikrocontrollerprogrammierung eingesetzt. Sobald du herausgefunden hast, wie die Buchstaben A bis F dargestellt werden, ändere das Programm so ab, dass die 16 Ziffern des Hexadezimalsystems nacheinander erscheinen.

6 - Lookup-Tabelle

 

Mit Hilfe des Befehls LOOKUP gestaltet sich das Schreiben von Code für 7-Segment-LED-Anzeigen wesentlich einfacher. Er ruft einzelne Elemente aus einer Liste auf. Hierzu ein Beispiel:

LOOKUP index, [7, 85, 19, 167, 28], wert

Der Befehl enthält zwei Variablen, index und wert.  Wenn index identisch 0 ist, wird wert die Zahl 7 aus der Liste zugewiesen. Index 1 speichert die Zahl 85 in wert. Da im folgenden Programmbeispiel index identisch 2 ist, weist LOOKUP der Variablen wert den Listenwert 19 zu und gibt sie im Debug Terminal aus.

 

Beispielprogramm  Lookup1.bs2

Aufgabe

Gib das Programm Lookup1.bs2 ein und speicher es ab.

Starte das Programm Lookup1.bs2.

Änder in Programmzeile 7 die Wertzuweisung an die Variable index ab. Wähle eine Zahl zwischen 0 und 4.

Führe das Programm nach jeder Änderung der Variablen index neu aus und beobachte, welche Zahl aus der Liste der Variablen wert zugeordnet wird.

Optional: Ändere das Programm so ab, dass der Befehl LOOKUP in eine FOR…NEXT Schleife, die von 0 bis 4 durchlaufen wird, eingebettet ist.

Programm Lookup1.bs2

Beispielprogramm  Lookup2.bs2

In diesem Beispielprogramm zeigen wir, wie einfach sich mit Hilfe des Lookup-Befehls Zahldarstellungen auf einer 7-Segment-LED Anzeige umsetzen lassen. Die Bitmuster für die Zahlen werden in einer OUTH-Variablen abgelegt. Die Variable index bestimmt, welcher Wert aus der Liste genommen wird. Das Beispielprogramm zählt von 0 bis 9, der Unterschied gegenüber dem Programm ZahlenAnzeigen besteht darin, dass es sich vielseitiger einsetzen lässt. Unterschiedliche Zahlsequenzen lassen sich darüber zum Beispiel sehr einfach abrufen.

Aufgabe

Gib das Programm lookup2.bs2 ein und speichere es ab.

Überzeuge dich davon, dass es die Zahlen von 0 bis 9 auf der 7-Segment-LCD Anzeige darstellt.

Schaue dir im Debug Terminal an, wie das Programm abläuft. Dort wird gezeigt, wie der Wert der Variablen index vom Lookup-Befehl genutzt wird, den richtigen Binärcode aus einer zugehörigen Liste auszuwählen und an OUTH zu übergeben.

Programm Lookup2.bs2

 

Jetzt kommst du!

Verändere das Programm Lookup2.bs2 so, dass es von 0 bis F - wie ein hexadezimaler Zähler - zählt. Vergiß dabei nicht die Grenzen in der FOR...NEXT Schleife entsprechend anzupassen.

7 - Drehbewegungen darstellen

Mit Hilfe eines Potentiometers haben wie bereits früher die Position des Steuerhorns eines Servos beeinflusst. In dieser Übung wird die Potentiometerstellung auf einer 7-Segment Anzeige dargestellt. 

Material

1x   7-Segment LED Anzeige

8x   Widerstand – 1 kOhm (braun-schwarz-rot)

1x   Potentiometer – 10 kOhm, linear

1x   Widerstand – 220 Ohm (rot-rot-braun)

1x   Kondensator – 0.1 µF

7x   Steckdraht

Schaltungsaufbau und Schaltskizze

 

 

 

 

 

 

 

 

 

Abbildung 6.16

Schaltungsaufbau nach der Schaltskizze aus Abb. 6.17.

Courtesy of Parallax Inc.

 

 

Abbildung 6.17

Schaltskizze für eine RC-Schaltung, die der 7-Segment-LED Displayschaltung hinzugefügt wird.

8 - Lookdown-Befehl und 7-Segment-Anzeige

Das Gegenstück zum LOOKUP Befehl ist der Befehl LOOKDOWN. Während LOOKUP eine Zahl über einen Index heraussucht, gibt LOOKDOWN nach Eingabe einer Zahl einen Indexwert zurück.

Wie dieser neue Befehl funktioniert und aufgerufen wird, schauen wir uns jetzt erst einmal näher in einem Beispielprogramm Lookdown1.bs2 an.

 

 

Beispielprogramm Lookdown1.bs2

Aufgabe
  • Führe das folgende Programm aus: Lookdown1.bs2.
  • Starte das Programm und setze die Variable wert auf 167. Beobachte über das Debug Terminal den Wert von index.
  • Setze die Variable wert im Befehl LOOKDOWN nacheinander auf folgende Werte: 7, 85, 19, 28.
  • Starte das Programm nach jeder Änderung von wert erneut und beobachte, welcher Wert der Liste in die Variable index eingesetzt wird.
Programm Lookdown1.bs2

Mit Hilfe des LOOKDOWN Befehls lässt sich auch überprüfen, ob ein Suchwert einem Listeneintrag entspricht oder größer als oder kleiner oder gleich einem Listeneintrag ist.

Wird zum Beispiel nach einem Eintrag gesucht, bei dem die Variable wert mit der Relation kleiner oder gleich verknüpft ist, muss der Operator < = direkt vor die erste Klammer der Liste gesetzt werden. Es wird der Index derjenigen Zahl aus der Liste zurückgegeben, für die die Aussage wahr ist.

 

Beispiel: wert = 20, Relation < =  gesetzt

im Terminalfenster wird 1 angezeigt, da 20 < = 85 eine wahre Aussage ist und die Zahl 85 den Index 1 trägt.

Beispielprogramm  Lockdown2.bs2

Programmbeispiel Lookdown2.bs2
Aufgabe

Verändere das Programm Lookdown2.bs2 so, wie im obigen Beispielprogramm angegeben.

Experimentiere mit verschiedenen Werten und überprüfe, ob die Variable index jedesmal den Zahlenwert im Terminal ausgibt, den du erwartet hast.

Beispielprogramm  Lookdown3.bs2

In diesem Programmbeispiel wird die Position des Schleifers eines Potenziometers durch Aufleuchten der entsprechenden äußeren Segmente einer 7-Segment Anzeige (Abb. 6.18) dargestellt.

 

 

 

Abbildung 6.18

Die Position des Schleifers bei einem Potenziometer wird auf einer 7-Segment-LED Anzeige angezeigt.

Courtesy of Parallax Inc.

Aufgabe
  • Gib das Programm Lookdown3.bs2 ein und speicher es ab.
  • Starte das Programm Lookdown3.bs2.
  • Bewege den Schleifer des Potentiometers und überzeuge dich, dass die LEDs im äußeren Ring des Anzeigebausteins aufleuchten.
  • Wenn das Programm ausgeführt wird, kann es sein, dass es nicht so genau arbeitet, wie in Abbildung 6.18 dargestellt. Passe die Werte in der Lookdown-Tabelle dann so an, dass die Digitalanzeige die Position der Potenziometerstellung präziser wiedergibt.
Programm Lookdown3.bs2

Wie arbeitet das Programm  Lookdown3.bs2?

Das Beispielprogramm misst die Entladezeit der RC-Schaltung mit dem Befehl RCTIME und speichert den Wert in einer Variablen mit Namen zeit

HIGH 5
PAUSE 100
RCTIME 5, 1, zeit

Die zeit Variable wird dann in einer LOOKDOWN Tabelle benutzt. Hier entscheidet sich, welcher Eintrag in der Liste kleiner als zeit ist; der entsprechende Positionslistenwert (zwischen 0 und 5 in diesem Fall) wird in der Variablen index abgelegt. 

LOOKDOWN time, <= [40, 150, 275, 400, 550, 800], index

Über die Variable index wird in der LOOKUP Tabelle der entsprechende binäre Wert bestimmt, der dann der Variablen OUTH zugewiesen wird.

LOOKUP index, [ %11100101, %11100001, %01100001,
                %00100001, %00000001, %00000000 ], OUTH

Jetzt kommst du!

Lookdown3.bs2 steuert nur fünf der sechs Segmente an, wenn der Drehknopf bewegt wird. Die Reihenfolge, in der die LEDs eingeschaltet werden, lautet E, F, A, B, C aber nicht D. 

Aufgabe
  • Speicher das Programm Lookdown3.bs2 unter dem neuen Namen Lookdown4.bs2 ab.
  • Verändere das Programm jetzt so, dass sich alle sechs äußeren LEDs synchron zur Potentiometereinstellung ein- bzw. ausschalten lassen. Die Segmentreihenfolge sollte wie folgt sein: E, F, A, B, C und D.
Druckversion | Sitemap
© Reinhard Rahner - Gettorf