long prevMillis1=0; // pro ledky
long prevMillis2=0; // pro tlacitko
byte akce=0; // akce casovace1 - 150ms
byte ledky=2; // pomocna pro ledky
int buttVal; // hodnota tlacitka
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
prevMillis1=millis(); // ulozeni predchoziho stavu
prevMillis2=millis(); // ulozeni predchoziho stavu
}
void loop() {
// Casovani 150ms
if (prevMillis1+150 < millis()) {
prevMillis1=millis(); // aktualizujeme hodnotu ulozene predchozi hodnoty millis
akce=1; // bude neco s ledkama dale v loopu vyhodnocene
}
// Casovani 50ms pro tlacitko
if (prevMillis2+50 < millis()) {
prevMillis2=millis(); // aktualizujeme hodnotu ulozene predchozi hodnoty millis
buttVal=analogRead(A0); // nacteme tlacitko
if (buttVal > 500) { // zde si uprav hodnotu na kterou to ma reagovat - tady jen z duvodu vypisu
Serial.print("Tlacitko hodnota");
Serial.println(buttVal);
}
}
// akce ledek
if (akce==1) {
akce=0; // nulujeme hodnotu promenne aby se v danem prubehu provedla jen 1x
// Rozsveceni ledek - cyklus 2 az 5 - piny kde mas ledky
for (byte a=2; a<=5; a++) {
if (a==ledky) // aktualni co ma svitit je v promenne "ledky"
digitalWrite(a, HIGH); // tahle bude svitit
else
digitalWrite(a, LOW); // tahle svitit nebude
}
ledky++; // zvysime promennou ledky o 1
if (ledky==6) ledky=2; // pokud uz je 6 tak to je moc a jedeme na zacatek od 2
}
}
Comments