int Tlacitko = 7; // tlacitko na pinu 7
int Led_1 = 10; // Led 1 na pinu 10
int Led_2 = 11; // Led 2 na pinu 11
boolean Svetla = false;
boolean Blik = true;
int mode = 0; //(0 - Vypnuto, 1 - Zapnuto, 2 - Blikání
long posledniBlik = 0; // promenná pro počet milisekund pri poslednim bliku (pomale blikání)
void setup() {
pinMode(Led_1, OUTPUT); // nastaví vystup u Led 1 na výstup
pinMode(Led_2, OUTPUT); // nastaví vystup u Led 2 na výstup
pinMode(Tlacitko, INPUT); // nastaví pin kde je připojeno tlačítko jako výstup
digitalWrite(Tlacitko,HIGH); // zapnutí pullup rezistoru, aby jsme k tlačítku
// nemuseli přidávat rezistor. Tlačítko je tedy připojeno ke GND a pinu 7 !!!!!!
// Při vypnutém tlačítku vnitřní pullup rezistor připojujuje k +5V.
}
void loop() {
// zapne nebo vypne LED v závislosti na stavu proměné Svetla
digitalWrite(Led_1, Svetla);
digitalWrite(Led_2, Svetla);
// když je na vstupu Tlačítka logická 0 (LOW)
// !!! není spínálo log. 1, protože využíváme tzv. pulldown rezistoru v čipu
if ((digitalRead(Tlacitko)) == LOW)
{
mode++; // přičte k MODE hodnotu 1
if (mode > 2) mode = 0; // když je mode větší jak 2 tak ho vynuluj
delay(200); // prodleva proti záchvěvům tlačítka
}
if (mode == 0) Svetla = 0; //Vypni světla
if (mode == 1) Svetla = 1; //Zapni světla
if (mode == 2) Svetla = Blik; // Svetla zavisí na stavu promené Blik
// časovač pro blikání *********************************************
if ((millis() - posledniBlik) > 400) // když celkový počet milisekund
// minus počet milisekund při poslednim "bliku" je vetši jak 400
// tady můžete nastavit rychlost blikání v počtu milisekund
{
Blik = !Blik; // Blik se rovná negaci Blik (neguje proměnou)
posledniBlik = millis(); // zapiš poslední blik
}
}