Län­der-Info

# 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: 25. Jul 2023 @ 13:37