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_1 = true;
boolean blik_2 = true;
boolean blik_3 = true;
int mode = 0; //(0 - Vypnuto, 1 - Zapnuto, 2 - Blikání, 3 - Rychle blikani, 4 - Kombinace 1, 5 - Kombibnace 2, 6 - Kombibnace 3,)
long cas_blik_1 = 0; // promenná pro počet milisekund pri poslednim bliku časovače 1
long cas_blik_2 = 0; // promenná pro počet milisekund pri poslednim bliku časovače 2
long cas_blik_3 = 0; // promenná pro počet milisekund pri poslednim bliku časovače 3
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 > 6) 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_1; // Svetla zavisí na stavu promené časovače 1
if (mode == 3) Svetla = blik_2; // Svetla zavisí na stavu promené časovače 2
if (mode == 4) Svetla = blik_1 && blik_2; // logický součin časovače 1 a 2
if (mode == 5) Svetla = blik_1 || blik_2 || blik_3; // logický součet časovače 1 a 2 a 3
if (mode == 6) Svetla = blik_1 && blik_3; // logický součin časovače 2 a 3
// blikani 1
if ((millis() - cas_blik_1) > 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_1 = !blik_1; // Blik se rovná negaci Blik (neguje proměnou)
cas_blik_1 = millis(); // zapiš poslední blik
}
// blikani 2
if ((millis() - cas_blik_2) > 50) // když celkový počet milisekund
// minus počet milisekund při poslednim "bliku" je vetši jak 50
// tady můžete nastavit rychlost blikání v počtu milisekund
{
blik_2 = !blik_2; // Blik se rovná negaci Blik (neguje proměnou)
cas_blik_2 = millis(); // zapiš poslední blik
}
// blikani 3
if ((millis() - cas_blik_3) > 330) // když celkový počet milisekund
// minus počet milisekund při poslednim "bliku" je vetši jak 330
// tady můžete nastavit rychlost blikání v počtu milisekund
{
blik_3 = !blik_3; // Blik se rovná negaci Blik (neguje proměnou)
cas_blik_3 = millis(); // zapiš poslední blik
}
}