const byte led01 = 13;
const byte Taster01 = 11; // Pin 11 wird Constant als Taster01 bezeichnet
bool Tasterstatus01 = 0; // Zum Abfragen des Tatsenpins
unsigned long Sekundenablauf01 = 5000;
unsigned long Pausezeit01 = 5000; // Zeit wenn Taster gedrückt 5000ms Pause
byte funktion01 = 0;
unsigned long Sekundenablauf02 = 0; // leuchtzeit led01 300ms aussetzen
unsigned long Pausezeit02 = 1000;
byte funktion02 = 0;
unsigned long Sekundenablauf03 = 0; // Serialprint Ausgabe auf 3000ms aussetzen
unsigned long Pausezeit03 = 100;
byte funktion03 = 0;
unsigned long startzeit = 0;
unsigned long endzeit = 0;
void setup() {
pinMode(led01, OUTPUT);
pinMode(Taster01, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
//startzeit = micros();
// Block 01 >>>>>>>>>>>>>>>
// Ist Taste gedrückt?------------------------------------------------------------------------
if (millis() - Sekundenablauf01 >= Pausezeit01)
{
Tasterstatus01 = digitalRead(Taster01); // Pin von Taster01 abfragen
if (Tasterstatus01 == LOW)
{
Serial.println(F("Taste gedrückt"));//
funktion01 = 1;
Sekundenablauf01 = millis(); // Der 5000ms Timer01 wird gestartet
digitalWrite (led01, funktion01);
}
else {
funktion01 = 0;
}
}
// Block 01 Ende <<<<<<<<<<<<
// Wenn die Taste gedrückt wurde, bleibt die LED 5 Sekunden an, -------------------------------
// weil die nächsten die Blocks 2+3 5Sek. lang übersprungen werden -------------------------------
if (funktion01 == 0)
{ // Taste wurde gedrückt
// Block 02 Anfang >>>>>>>>>>>>>>
// Alle 1000ms LED13 an / aus--------------------------------------------------------------
if (millis() - Sekundenablauf02 >= Pausezeit02)
{
funktion02 = !funktion02;
digitalWrite (led01, funktion02);
Sekundenablauf02 = millis(); // Der 1000ms Time02 wird gestartet
}
// Block 02 Ende <<<<<<<<<<<<
// Block 03 Anfang >>>>>>>>>>>>>>>>>
// Wenn LED13 für 1000ms aus ist, dann LED13 im 100ms Tackt an / aus----------------------
if ((millis() - Sekundenablauf03 >= Pausezeit03) && (funktion02 == 0))
{
funktion03 = !funktion03;
digitalWrite (led01, funktion03);
Sekundenablauf03 = millis(); // Der 100ms Time03 wird gestartet
}
// Block 03 Ende <<<<<<<<<<<<
} // Tastensteuerung Ende
//endzeit = micros();
//Serial.println(endzeit - startzeit);
}
// Loop Ende ----------------------------------------------------------------------------------