Es wird dringend empfohlen, zunächst das Kapitel Einführung in BlocklyProp durchzuarbeiten, bevor man hier weiter liest.
Folientastaturen sind kostengünstige Eingabemittel für einen Mikrocontroller. Sie werden häufig in einfachen Taschenrechnern, Mikrowellen oder anderen elektronischen Geräten eingebaut.
Die sechzehn Tasten sind in einer Matrix angeordnet und lassen sich über zwei Leitungen jeweils einzeln abfragen (Abb. 2).
Insgesamt werden vom Propeller Controller 8 Datenleitungen für die Tastatur benötigt. Vier davon (Ausgänge P4 - P7) werden auf HIGH gezogen, während über die Eingänge P0 - P3 abgefragt werden kann, welcher Pegel (0 oder 1) anliegt.
Beispiel
Annahme: Taste 5 wird gedrückt. Um allgemein zu überprüfen, welche Taste in der zweiten Zeile (4, 5, 6 oder B) gedrückt wurde, muss P6 auf HIGH gezogen werden. Taste 5 ist gedrückt, dann liegt an P2 HIGH an, während an P0, P1 und P3 LOW anliegt.
In einer ersten Übung werden mit Hilfe der Tastatur zwei LEDs per Tastendruck ein- und ausgeschaltet. Diese Übung dient auch dazu, sich erst einmal mit der Beschaltung der Tastatur und dem Controller vertraut zu machen. In einer zweiten Übung soll die auf der Tastatur stehende Zahl bei gedrückter Taste auf einer 7-Segment-LED-Anzeige erscheinen. In beiden Übungen wird das Propeller-FLiP Modul benutzt.
Die Taste A soll die rote LED ein- bzw. ausschalten und Taste 0 entsprechend die grüne. Beide LEDs werden mit einem Vorwiderstand von 470 Ohm versehen.
Zwei Tasten - zwei LEDs | |
Material |
|
Aufgaben |
|
Schaltungsaufbau
Das Programm
Wie arbeitet das Programm?
Mit dem ersten Blockoperator 4x4 Keypad initialize PINS left ... wird dem Controller mitgeteilt, welche Portpins von der Folientastatur benutzt werden.
Der Blockoperator repeat forever leitet eine Endlosschleife ein, in der wiederholt einzelne Aktionen ausgeführt werden.
In der Blockkategorie CONTROL gibt es nur den Blockoperator if ... do. Der Blockoperator if ... do ... else lässt sich darüber aufbauen. Dazu klickt man auf das blau unterlegte Zahnkranz-Symbol links oben im Operatorfeld.
Aus dem linken Fenster lassen sich alternativ zwei Optionen in den if-Block einbauen: else if oder else. Dazu klickt man das entsprechende Symbol mit der linken Maustaste an und zieht es in das rechte Fenster.
Mit einem erneuten Klick auf das Zahnkranz-Symbol gelangt man zurück in die Editoroberfläche von BlocklyProp und das neue erweiterte Blocksymbol erscheint.
Der erste Blockoperator if taste = 0 fragt ab, ob Taste 0 auf der Folientastatur gedrückt worden ist; ist das der Fall, wird die LED an Port 0 auf HIGH gezogen und beginnt zu leuchten. Wurde hingegen Taste 10 gedrückt, beginnt die LED an Port 1 zu leuchten.
Vorkenntnisse über eine 7-Segment-LED-Anzeige, ihre Beschaltung und den Aufbau sollten vorhanden sein. Informationen dazu findet man hier:
In dieser Übung soll es darum gehen, dass auf einer 7-Segment-LED-Anzeige die Ziffer der Taste angezeigt wird, die gedrückt ist. Insgesamt gibt es 16 Tastenfelder auf der Folientastatur; die Zifferntasten 0 bis 9 werden als Zahl so auch auf der 7-Segment-Anzeige erscheinen. Den Buchstaben A - D und den beiden Symboltasten * und # sind ebenfalls Zahlen zugeordnet.
Folientastatur und 7-Segment-LED Anzeige | |
Material |
|
Aufgaben |
|
Der Versuchsaufbau
Bei diesem Versuchsaufbau habe ich eine selbst hergestellte Experimentierplatine mit drei Einzelschaltungen (LDR-Schaltung, 7-Segment-Anzeige und Potenziometerschaltung) benutzt. Die Datenleitungen sind über einen 20-poligen Wannenstecker verfügbar.
Das Programm
Wie arbeitet das Programm?
Der erste Blockbefehl 4x4 keypad initialize ... initialisiert die Folientastatur über die dort eingetragenen Pins.
Die Pins 0 bis 7 werden mit dem Blockbefehl set the directions from lowest PIN ... auf HIGH und damit auf Ausgang gesetzt.
In der nachfolgenden Endlosschleife erfolgt über tief verschachtelte "Wenn ... dann" Abfragen die entsprechende Bitzuweisung an die 7-Segment-Anzeige.
Der Blockbefehl set the states from lowest PIN ... using bits from ... binary setzt die angegebenen Pin 0 bis 7 (sie sind mit der 7-Segment-Anzeige verbunden) auf LOW bzw. HIGH. Als Folge davon erscheint auf dem Display die entsprechende Ziffer/ das entsprechende Symbol der gedrückten Taste.
Beim *-Symbol erscheint das Zeichen
Beim #-Symbol erscheint das Zeichen
Die Ansteuerung einer Ampelschaltung und eines Tasters unter BlocklyProp haben wir bereits an einer anderen Stelle ausführlich besprochen. In dieser Übung geht es darum, eine komplette Straßenkreuzung mit insgesamt vier Ampelanlagen zu simulieren. In dieser vereinfachten Version sind jeweils zwei Ampeln parallel geschaltet. Und dies sind die Vorgaben:
Schaltungsplatine
Schaltungsaufbau
Schaltskizze
Belegung der Pins im Wannenstecker
Das Programm