Simulation mit TinkerCAD Circuits - LCD Keypad Shield
In der AG wirst du ein LCD Keypad Shields auf dem µC UNO nutzen können.
Mittels einer TinkerCAD Circuits Simulation wirst du die entsprechende Hard- und Software schrittweise kennen und nutzen lernen.
- Schau dir das Shield und dessen Schaltbild an und mache dich mit diesen vertraut.
- Erstelle deine Kopie der TinkerCAD Circuits Vorlage, um die nächsten Aufgaben praktisch ausführen zu können.
- Ändere das typische "Hello World"-Programm ab.
- Mittels Spannungsmessung wird die Möglichkeit der Tasterabfrage gezeigt.
- Geschafft - die Tasterabfrage ist nun per Fallunterscheidung programmierbar.
- Vervollständige deine Tastaturabfragefunktion.
- Upps - kleine Fehler machen umfangreiche Hard- und Softwareänderungen notwendig.
- Nutze dieses Beispiel für zukünftige Projekte mit diesem Shield.
Das LCD Keypad Shield
Das Shield wird auf dem UNO in Betrieb genommen und ein entsprechendes Program auf den UNO geladen.
Ein erstes Problem kann die Einstellung der Helligkeit mittels der links oben auf dem Potentiometer befindlichen Messingschraube sein.
Geduldiges Drehen ist erforderlich, bis ein Bild zu sehen ist. ...
Fünf Taster (SELECT, LEFT, UP, DOWN, RIGHT) können vom Programm abgefragt und entsprechende Reaktionen programmiert werden.
Der Taster RST ist der RESET-Taster und startet den UNO neu - also aufpassen!
Dieses Bild zeigt nicht unser Shield.
Das Schaltbild des Shields
Die PWR-LED leuchtet, wenn das Shield unter Spannung steht.
Der Analog-Pin A0 des UNO ist mit Taster-Widerstandsnetzwerk verbunden. Dadurch kann im Programm über eine Spannungsmessung bestimt werden, welcher Taster gedrückt ist.
Verschiedene externe Anschlußmöglichkeiten sind vorhanden bzw. vorgesehen.
Die Vorlage für die Simulation des Shields
Öffne die Vorlage ⇒ LCD-Keypadshield, erstelle deine Kopie dieser Vorlage und öffne sie zum Bearbeiten.
Starte die Simulation.
Mittels des Potentiometers kann die Helligkeit des Display's geändert werden.
Das Drücken eines Tasters führt zur Änderung des vom Spannungsmesser angezeigten Wertes, da dadurch das Verhältnis des Spannungsteilers geändert wird.
"Hello World"
Das Objekt lcd wird definiert, und die mit lcd.begin(16,2) die Größe des LCD-Display's festgelegt.
Mit den Methoden lcd.setCursor() und lcd.print() werden die Ausgaben auf das LCD-Display gemacht.
Mittels lcd.clear() kann das Display gelöscht werden.
Ändere den Text in der Anzeige:
- Deine Vorname soll in der Zweiten Zeile blinken.
- Das gesammte Display zeigt blinkte Worte in beiden Zeilen.
- Abwechselnd blinken die Worte in den beiden Zeilen.
- Mindestens drei Worte blinken nacheinander in den beiden Zeilen.
Spannungsmessung am Spannungsteiler
Gib den Spannungswert des Multimeters auf dem Display aus. Verbinde dazu in deiner Schaltung den Analogeingang A0 am UNO mit dem Messpunkt des Spannungsmessers.
Mittels analogRead(A0) wird der Messwert des internen Analog-Digital-Wandlers in eine Variable messwert geschrieben und mit lcd.print(messwert) ausgegeben.
Notiere dir die Messwerte in Abhängigkeit vom gedrückten Taster.
Rechne den Messwert vom aktullen Bereich 0 bis 1023 in den Spannungsbereich von 0 bis 5 V um.
Gib auch die Einheit Volt hinter dem Messwert aus.
Tastermesswerte: none 858, T1 0, T2 511, T3 614, T4 703, T5 779 | Umrechnung auf 5 Volt: lcd.print(messwert*5.0/1024);
Tasterabfrage per Spannungsmessung
Vervollständige die Bestimmung der Nummern der gedrückten Taster.
Tasterabfrage per Funktion
Der Einsatz der leseTaster()-Funktion wird der loop()-Teil übersichtlicher.
Unsere Funktion kann auch an anderen Stellen im Programm zur Tastaturabfrage eingesetzt werden.
Upps - Änderungen sind notwendig
Beim Vergleich des Schaltbildes mit der Vorgabe hast du vielleicht schon festgestellt, dass
die Widerstandswerte von einander abweichen,
die Anordnung der Taster entgegengesetzt zur Anordnung auf dem Shield ist und
ein Widerstand und eine Drahtbrücke zuviel auf dem Steckbrett platziert sind.
Ändere deinen Schaltungsaufbau entsprechend ab.
Damit ist nun auch eine Anpassung des Programms notwendig. Führe diese Änderungen selbständig aus.
Bei der Entwicklung von Projekten kommt es immmer wieder vor, dass aus verschiedenen Gründen Änderungen gemacht werden müssen.
Das kann schon bei der Hardware- und Softwareentwicklung viel Aufwand und damit auch Kosten verursachen.
Werden solche Änderungen in der Produktion eines Produktes notwendig, sind die Auswirkungen teilweise dramatisch.
⇒ lcd-anpassungen.ino - In dieser Lösung wurde die Fallunterscheidung überarbeitet.
Unser Beispiel zur Anwendung des Shields
Schau dir dieses Beispiel an.
Durch den Einsatz von Konstanten wird die Fallunterscheidung besser lesbar. Die Bezeichnung der gedrückten Taste wird auf dem Display ausgegeben.
Im loop()-Teil wird die Funktion leseTaster() genutzt und mittels der switch()-Anweisung werden den Tasten Aktionen zugeordnet.
Natürlich erscheint dir das Programm noch nicht sehr nützlich.
Anwendungsbeispiele
- Sensoren am Shield ...
- Eigene Zeichen erstellen....
- Uhr....
- Dieser Abschnitt wird bald vervollständigt.
Das erste Anwendungsbeispiel wird dir die Verwendung des Shields in Verbindung mit einem analogen Temperatursensor gezeigt.
Per Menüsteuerung können verschiedene Funktionen ausgewählt werden.
Die Bibliothek LiquidCrystal.h
Links
- Mathias Wilhelm's pages on Arduino - Beginner » Schritt 6: LCD Displays
- Frerks kleine Welt - Arduino - LCD-Keypad-Shield
- Infrared + lcd | Electronics Lab
- deskfactory.de - Machtübernahme – Alles was du über Arduino und Infrarot Fernbedienungen wissen musst.
- HITACHI HD44780U (LCD-II) - Dot Matrix Liquid Crystal Display Controller/Driver
