Testprogramm 2 - Erweiterung mit LCD-Display
Das LCD-Display soll nun in Betrieb genommen werden.
Benötigt werden zur Steuerung die I2C-Pins SDA und SCL, sowie 5 V / GND als
Versorgungsspannung.
Der 3V3-Spannungsausgang des ESP32 ist nicht verwendbar.
Deshalb wird die Versorgungsspannung für das Display über ein 12 V - Netzteil und den
Spannungsregler 7805 eingespeist. Die beiden I2C-Pins werden zusätzlich zum
ESP32 auch über Schraubklemmen nach außen geführt.
I2C-Test
In der zentralen Headerdatei config.h
werden die
verwendeten I2C-Pins definiert.
Das Projekt wird erweitert um ein I2C-Testprogramm
(fctI2Cscanner
), das beim Setup ausgeführt werden soll. Die
Funktionsdeklaration wird in der zentralen config.h
eingetragen.
Das
Terminal zeigt nach Upload dieser Programmteils die erfolgreiche Suche nach dem
Display auf Adresse 0x27
an.
Anmerkung: Die Adresse des LCD kann auf dem
I2C-Adaptermodul konfiguriert werden. Es befinden sich in der Regel drei
Lötbrücken oder Steckpins mit der Bezeichnung A0, A1, A2, die zur Einstellung
verwendet werden. Die Basisadresse ist 0x20
. Mit den 3 Adress-Pins (A0–A2)
lassen sich 8 Adressen (0x20 bis 0x27) einstellen. Der Adapterbaustein PCF8574A
besitzt die Adressen 0x38...0x3F. <
LCD-Display ansteuern
Zur Ansteuerung des Displays muss die Bibliothek LiquidCrystal_I2C@^1.4.0
installiert werden. Die geschieht einfach über PlatformIO.
In der Datei
my_lcddisplay.cpp
werden mehrere Hilfsfunktionen für das Display zusammengefasst.
Für die Displaysteuerung wird eine eigene Headerdatei
erstellt. Damit wird die Übersichtlichkeit und Struktur erhöht.
Im Setup erfolgt die Initialisierung und die
Willkomen-Meldung des LCD.
Testprogramm
Als Test für das Display sollen die betätigten Eingabetasten im Binärcode angezeigt werden.
Das Testprogramm für das LCD wird als Funktion aus dem Hauptprogramm aufgerufen.
Es liest die Tastenstellungen ein und wandelt diese in eine 5-Bit Binärzahl um.
Diese wird dann auf dem Display als Textstring ausgegeben.
Programmablaufplan
Einen Überblick über die Testprogramme für Tasten und LCD gibt der Programm-Ablaufplan: