// ---------------------------------------------------------
// 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 I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C oLCD (I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// ---------------------------------------------------------
#define PIN_UP 33
#define PIN_DOWN 14
#define PIN_RIGHT 32
#define PIN_LEFT 27
char sText [30];
void setup()
{
oLCD.init();
oLCD.backlight();
pinMode(PIN_UP, INPUT_PULLUP);
pinMode(PIN_DOWN, INPUT_PULLUP);
pinMode(PIN_LEFT, INPUT_PULLUP);
pinMode(PIN_RIGHT, INPUT_PULLUP);
}
void loop()
{
int iZeile;
int iSpalte;
iZeile=0;
iSpalte=5;
strcpy (sText,"Test");
for (;;)
{
if (digitalRead(PIN_UP)==LOW) iZeile=0;
if (digitalRead(PIN_DOWN)==LOW) iZeile=1;
if (digitalRead(PIN_LEFT)==LOW) iSpalte--;
if (digitalRead(PIN_RIGHT)==LOW) iSpalte++;
if (iSpalte<0) iSpalte=0;
if (iSpalte>15) iSpalte=15;
oLCD.clear();
oLCD.setCursor (iSpalte,iZeile);
oLCD.print (sText);
delay (500);
}
}