//////// Variante ohne delay() ///////////////////
///////////////////////////////////////////////////
#include <LiquidCrystal_I2C.h> // I2C-Adapter: SDA an A4, SCL an A5, VCC an +5V, GND an GND (-, Masse)
byte x = 0; // byte = Zahl zwischen 0 und 255
LiquidCrystal_I2C lcd(0x27, 20, 4); // auf LCD Anzeige 2004 setzen
unsigned long intervall = 1000;
unsigned long lastMillis;
void setup() // Kontrast einstellen am Poti der I2C-Platine
{
Serial.begin(115200);
lcd.init(); // Initialisiere das LCD Display
lcd.backlight(); // LCD Licht ein
lcd.clear(); // lösche LCD Anzeige
// Feste Texte ausgeben ( nur 1x!)
lcd.setCursor(6, 2);
lcd.print("Sekunden ");
lcd.setCursor(2, 1);
lcd.print("die Zeit vergeht");
}
void loop()
{
if ( millis() - lastMillis > intervall )
{ // Intervallzeit ist abgelaufen, Werte ausgeben
lastMillis += intervall; // Nächste Intervallzeit
// Sekunden anzeigen
lcd.setCursor(2, 2);
lcd.print(millis() / 1000); // Ausgabe Sekunden ab Programmstart
// Namen im Wechsel anzeigen
if (x == 0) // wenn x==0 Name 1
{
lcd.setCursor(5, 0);
Serial.print(" X="); Serial.println(x);
lcd.setCursor(5, 3);
lcd.print ("Horst ");
x = 1; // Umschalten auf 2. Namen für nächsten Durchlauf
}
else // wenn x nicht 0, 2. Namen ausgeben
{
Serial.print(" X="); Serial.println(x);
lcd.setCursor(5, 3);
lcd.print ("Willibald ");
x = 0; // wieder auf 1. Namen umschalten
}
}
}