# include "Bounce2.h"
# include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 20, 4);
struct Laenderdaten
{
String Name;
float Einwohner;
long Groesse;
String Hauptstadt;
};
Laenderdaten Deutschland =
{
"Deutschland",
83.01,
357578,
"Berlin"
};
Laenderdaten Frankreich =
{
"Frankreich",
66.99,
543965,
"Paris"
};
Laenderdaten Belgien =
{
"Belgien",
11.37,
30688,
"Br\365ssel"
};
Laenderdaten Niederlande =
{
"Niederlande",
17.29,
41543,
"Amsterdam"
};
/*
Anschlüsse von links nach rechts
GND D4 D5 D7 D6
*/
int TASTER1 = 5; // Taste 1
int TASTER2 = 4; // Taste 2
int TASTER3 = 7; // Taste 3
int TASTER4 = 6; // Taste 4
// Bibliothek Bounce2
// "Prellverhinderer" für die Tasten starten
Bounce Land1 = Bounce();
Bounce Land2 = Bounce();
Bounce Land3 = Bounce();
Bounce Land4 = Bounce();
void setup()
{
// Instanzen des Objekts Bounce für jede Taste zuordnen
// Zeitintervall einstellen
Land1.attach(TASTER1);
Land1.interval(20);
Land2.attach(TASTER2);
Land2.interval(20);
Land3.attach(TASTER3);
Land3.interval(20);
Land4.attach(TASTER4);
Land4.interval(20);
// INPUT_PULLUP -> Eingangspegel auf HIGH setzen
pinMode(TASTER1, INPUT_PULLUP);
pinMode(TASTER2, INPUT_PULLUP);
pinMode(TASTER3, INPUT_PULLUP);
pinMode(TASTER4, INPUT_PULLUP);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("1 = Deutschland");
lcd.setCursor(0, 1);
lcd.print("2 = Frankreich");
lcd.setCursor(0, 2);
lcd.print("3 = Belgien");
lcd.setCursor(0, 3);
lcd.print("4 = Niederlande");
}
void loop()
{
// Taste 1 gedrückt
if (Land1.update())
{
if (Land1.read() == LOW)
{
ZeigeDaten(Deutschland);
}
}
// Taste 2 gedrückt
if (Land2.update())
{
if (Land2.read() == LOW)
{
ZeigeDaten(Frankreich);
}
}
if (Land3.update())
{
if (Land3.read() == LOW)
{
ZeigeDaten(Belgien);
}
}
if (Land4.update())
{
if (Land4.read() == LOW)
{
ZeigeDaten(Niederlande);
}
}
}
void ZeigeDaten(struct Laenderdaten Land)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(Land.Name);
// bei der Einwohnerzahl . durch , ersetzen
String Einwohner = String(Land.Einwohner);
Einwohner.replace(".", ",");
lcd.setCursor(0, 1);
lcd.print(Einwohner + " Millionen");
lcd.setCursor(0, 2);
lcd.print("Fl\341che " + String(Land.Groesse) + " qkm");
lcd.setCursor(0, 3);
lcd.print("Hauptstadt " );
lcd.print(Land.Hauptstadt);
lcd.setCursor(0, 0);
}
Letzte Aktualisierung: