/**************
Name: Ivan Ivanov
Datum: 02.04.2024
Übung: Eieruhr mit Startbutton, variable Zeit und Buzzer
**********/
int minu = 0;
int sek = 0;
int potValue = 0;
int mappedZeit = 0;
bool count = false; // Variable, um den zählstatus zu verfolgen
void setup()
{
// put your setup code here, to run once:
pinMode(13, OUTPUT);
pinMode(7, INPUT_PULLUP);
pinMode(8, OUTPUT);
Serial.begin(9600);
Serial.println("Eieruhr");
}
void loop()
{
// put your main code here, to run repeatedly:
if (!count)
{
// Der Potentiometer lesen
potValue = analogRead(A2);
mappedZeit = map(potValue, 0, 1023, 30, 260); // 30 sekunden bis 4 minuten 20 sekunden
Serial.print("Selected Time: ");
Serial.print(mappedZeit / 60);
Serial.print(":");
Serial.println(mappedZeit % 60);
if (digitalRead(7) == LOW)
{
count = true;
minu = mappedZeit / 60;
sek = mappedZeit % 60;
}
}
if (count)
{
delay(1100);
sek--;
Serial.print(minu);
Serial.print(":");
Serial.println(sek);
if (minu == 0 && sek == 0)
{
Serial.println("Zeit is abgelaufen");
while (digitalRead(7) == HIGH)
{
digitalWrite(13, HIGH);
delay(400);
digitalWrite(13, LOW);
delay(400);
// buzzer beepen
tone(8, 1000); // tone spielen mit 1000Hz
delay(200);
noTone(8); // tone stoppen
delay(200);
}
count = false;
}
if (sek == 0)
{
minu--;
sek = 59;
}
}
}