const int tlacitko1Pin = A0; // Tlačítko připojeno k pinu A0
const int led1Pin = 12; // LED připojena k pinu 12
int stavTlacitka1 = HIGH; // Aktuální stav tlačítka (vysoký, protože je interní pull-up)
int predchoziStavTlacitka1 = HIGH; // Předchozí stav tlačítka (vysoký na začátku)
unsigned long casStisknuti = 0; // Proměnná pro uložení času stisknutí tlačítka
void setup() {
pinMode(tlacitko1Pin, INPUT_PULLUP); // pin A0 jako vstup s interním pull-up odporem
pinMode(led1Pin, OUTPUT); // pin 12 jako výstup pro LED
}
void loop()
{
stavTlacitka1 = digitalRead(tlacitko1Pin); // čtení aktuálního stavu tlačítka
// Pokud tlačítko bylo předtím stisknuto a je nyní uvolněno, zapneme LED a uložíme si čas stisknutí
if (stavTlacitka1 == HIGH && predchoziStavTlacitka1 == LOW)
{
casStisknuti = millis(); // Uložíme čas stisknutí tlačítka
digitalWrite(led1Pin, HIGH); // Zapneme LED
}
// Pokud uplynulo 5 sekund od stisknutí tlačítka, vypneme LED
if (millis() - casStisknuti >= 5000)
{
digitalWrite(led1Pin, LOW); // Vypneme LED
}
// Uložení aktuálního stavu tlačítka pro další porovnání
predchoziStavTlacitka1 = stavTlacitka1;
}