// ---------------------------------------------------------
// I2C - LCD Anzeige
// Pinning: ESP32 D22 <=> SCL I2C_LCD
// D21 <=> SDA
// 3V3 <=> Vcc
// GND <=> GND
// Befehle:
// oLCD.init ()
// oLCD.backlight ();
// oLCD.clear ();
// oLCD.setCursor (iSpalte,iZeile);
// oLCD.printf ("Hallo");
#include <LiquidCrystal_I2C.h>
#define Tasteroben 34
#define Tasterunten 14
#define Tasterlinks 35
#define Tasterrechts 12
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C oLCD (I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// ---------------------------------------------------------
void setup()
{
pinMode(Tasteroben , INPUT_PULLUP);
pinMode(Tasterunten , INPUT_PULLUP);
pinMode(Tasterlinks , INPUT_PULLUP);
pinMode(Tasterrechts , INPUT_PULLUP);
oLCD.init();
oLCD.backlight();
}
int Zeile = 0;
int Spalte = 8;
void loop()
{
for(;;)
{
oLCD.clear();
int Tasteroben1 = digitalRead(Tasteroben);
int Tasterunten1 = digitalRead(Tasterunten);
int Tasterlinks1 = digitalRead(Tasterlinks);
int Tasterrechts1 = digitalRead(Tasterrechts);
if (Tasteroben1 == 0)
{
Zeile = Zeile + 1;
}
if (Tasterunten1 == 0)
{
Zeile = Zeile - 1;
}
if (Tasterlinks1 == 0)
{
Spalte = Spalte - 1;
}
if (Tasterrechts1 == 0)
{
Spalte = Spalte + 1;
}
oLCD.setCursor (Spalte,Zeile);
oLCD.printf ("o");
}
}