/***********************************
Name: Mandl Alexander
Datum: 21.03.2024
Übung: Eieruhr mit Poti
***********************************/
void setup()
{
Serial.begin(9600);
Serial.println("Eieruhr");
// Eingänge und Ausgänge Zuordnen
pinMode(A2, INPUT);
pinMode(13, INPUT_PULLUP);
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
}
//Globale Variablen deffinieren
int zeit = analogRead(A2);
int minute = 0;
int sekunde = 0;
int taster;
void loop() {
//Lokale Variablen deffinieren
int minsek = minute * 60 + sekunde;
digitalWrite(12, LOW);
digitalWrite(8, LOW);
//Start Taste
while (taster == 0)
{
timer(); //Zeitberechnung in externer Funktion
Serial.print(minute); //Anzeige der Eingestellten Zeit
Serial.print(":");
if (sekunde < 10)
{
Serial.print("0");
}
Serial.println(sekunde);
delay(1000);
if (digitalRead(13) == LOW) //Bedingung zum Start der Funktion
{
taster = 1;
}
}
if (taster == 1)
{
if (minsek < 0) //Bedingung zum Ausführen der Anzeige das der Timer Abgelaufen ist
{
while (minsek < 0 && taster == 1 )
{
digitalWrite(12, HIGH);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(12, LOW);
digitalWrite(8, HIGH);
delay(1000);
if (digitalRead(13) == LOW)
{
taster = 0;
}
}
}
else if (minsek >= 0) //Bedingung zum Herunterzählen
{
while (minsek >= 0)
{
if (sekunde < 0)
{
minute--;
sekunde = 59;
}
Serial.print(minute);
Serial.print(":");
if (sekunde < 10)
{
Serial.print("0");
}
Serial.println(sekunde);
delay(1000);
minsek--;
sekunde--;
}
}
}
}
void timer() //Funktion zum Berechnen der Eingegebenen Zeit
{
zeit = analogRead(A2);
zeit = map(zeit, 0, 1023, 30, 260);
minute = zeit / 60;
sekunde = zeit % 60;
}