#include <EEPROM.h> // knižnica pre prácu s EEPROM
// Pin pre LED
const int ledPin1 = 2;
const int ledPin2 = 3;
const int ledPin3 = 4;
// Pin pre tlačidlo
const int buttonPin = 5;
// Adresa a v EEPROM pre ukladanie voľby LED
const int ledAddress = 0;
void setup() {
// Inicializácia pinov
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
// Načítanie uloženej voľby z EEPROM a nastavenie LED
int selectedLED = EEPROM.read(ledAddress);
// podľa čísla uloženého v EEPROM sa rozsvieti LED
// Pokiaľ ide o úplne prvé spustenie modulu Arduino, ktorá LED sa rozsvieti?
if(selectedLED == 1) {
digitalWrite(ledPin1, HIGH);
} else if(selectedLED == 2) {
digitalWrite(ledPin2, HIGH);
} else if(selectedLED == 3) {
digitalWrite(ledPin3, HIGH);
}
}
void loop() {
// Čakanie na stlačenie tlačidla
while(digitalRead(buttonPin) == HIGH) {
delay(10); // Krátka pauza na vyhnutie sa skokovému čítaniu
}
// Zmena voľby LED
int selectedLED = EEPROM.read(ledAddress);
selectedLED++;
if(selectedLED > 3) {
selectedLED = 1;
}
EEPROM.write(ledAddress, selectedLED);
// Zhasnutie všetkých LED
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
// Zapnutie vybranej LED
if(selectedLED == 1) {
digitalWrite(ledPin1, HIGH);
} else if(selectedLED == 2) {
digitalWrite(ledPin2, HIGH);
} else if(selectedLED == 3) {
digitalWrite(ledPin3, HIGH);
}
// Počkajte, kým sa tlačidlo uvoľní
while(digitalRead(buttonPin) == LOW) {
delay(10);
}
}