#define spieler1 3
#define spieler2 2
#include <Wire.h> // Wire Bibliothek einbinden
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C Bibliothek einbinden
LiquidCrystal_I2C lcd(0x3f, 16, 2); //Modell: 0x3f //Init LCD: Adresse, Zeichen pro Zeile, Anzahl Zeilen
int sekunden = 0;
int minuten = 0;
int counter1 = 0;
int counter2 = 0;
void setup()
{
pinMode(spieler1, INPUT_PULLUP);
pinMode(spieler2, INPUT_PULLUP);
attachInterrupt(1,counter_1,FALLING); // 1.Parameter = 1=pin3,0=pin2 2.Parameter = funktion
attachInterrupt(0,counter_2,FALLING); // 3. Parameter = Zustandsbedienung
lcd.init(); // Im Setup wird der LCD gestartet
lcd.backlight(); // Hintergrundbeleuchtung einschalten (hellgruen)
lcdZeitausgabe(); // Zeitausgabe Funktion
lcdSpielstandanzeige(); // Spielstandanzeige Funktion
}
void loop()
{
delay(1000);
sekunden++;
if(sekunden >= 60)
{
sekunden = 0;
minuten++;
}
lcdZeitausgabe();
lcdSpielstandanzeige();
}
void lcdZeitausgabe()
{
//Spielzeit
lcd.setCursor(0, 0);
lcd.print("Zeit: ");
lcd.setCursor(7, 0);
lcd.print(minuten);
lcd.setCursor(9, 0);
lcd.print(":");
lcd.setCursor(10, 0);
if(sekunden < 10)
lcd.print("0"); //so werden Dezimalzahlen und Einheiten korrekter angezeigt
lcd.print(sekunden);
}
void lcdSpielstandanzeige()
{
lcd.setCursor(0, 1);
lcd.print("Stand: ");
lcd.setCursor(7, 1);
lcd.print(counter1);
lcd.setCursor(9, 1);
lcd.print(":");
lcd.setCursor(10, 1);
if(counter2 < 10)
lcd.print("0"); //so werden Dezimalzahlen und Einheiten korrekter angezeigt
lcd.print(counter2);
}
void counter_1()
{
counter1++;
}
void counter_2()
{
counter2++;
}
Lichtschranke und Taster sind bei Betätigung/Unterbrechung LOW.
Taste 1
Taste 2