const int tlacidloPin = 2; // Pin, ku ktorému je pripojené tlačidlo
const int ledPin = 13; // Pin, ku ktorému je pripojená LED
int tlacidloStav = LOW; // Aktuálny stav tlačidla (HIGH alebo LOW)
int predoslyTlacidloStav = LOW; // Stav tlačidla z predchádzajúceho čítania
bool ledZapnuta = false; // Stav LED
void setup() {
pinMode(tlacidloPin, INPUT_PULLUP); // Nastaví pin tlačidla ako vstup s interným pull-up odporom
pinMode(ledPin, OUTPUT); // Nastaví pin LED ako výstup
digitalWrite(ledPin, LOW); // Vypnúť LED pri štarte
Serial.begin(9600); // Začne sériovú komunikáciu
}
void loop() {
tlacidloStav = digitalRead(tlacidloPin); // Číta stav tlačidla
// Ak bol predchádzajúci stav LOW a aktuálny je HIGH (stlačené tlačidlo)
if (predoslyTlacidloStav == LOW && tlacidloStav == HIGH) {
ledZapnuta = !ledZapnuta; // Prepnúť stav LED
if (ledZapnuta) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
predoslyTlacidloStav = tlacidloStav; // Uloží aktuálny stav tlačidla pre ďalšie čítanie
delay(20); // Krátka pauza pre debounce (odstránenie nežiaducich výkyvov v signále)
}
//code by Miroslav Štubňa