Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. int Tlacitko = 7; // tlacitko na pinu 7
  2. int Led_1 = 10; // Led 1 na pinu 10
  3. int Led_2 = 11; // Led 2 na pinu 11
  4.  
  5. boolean Svetla = false;
  6.  
  7. boolean blik_1 = true;
  8. boolean blik_2 = true;
  9. boolean blik_3 = true;
  10.  
  11. int mode = 0; //(0 - Vypnuto, 1 - Zapnuto, 2 - Blikání, 3 - Rychle blikani, 4 - Kombinace 1, 5 - Kombibnace 2, 6 - Kombibnace 3,)
  12. long cas_blik_1 = 0; // promenná pro počet milisekund pri poslednim bliku časovače 1
  13. long cas_blik_2 = 0; // promenná pro počet milisekund pri poslednim bliku časovače 2
  14. long cas_blik_3 = 0; // promenná pro počet milisekund pri poslednim bliku časovače 3
  15.  
  16.  
  17. void setup() {
  18.  pinMode(Led_1, OUTPUT); // nastaví vystup u Led 1 na výstup
  19.  pinMode(Led_2, OUTPUT); // nastaví vystup u Led 2 na výstup
  20.  
  21.  pinMode(Tlacitko, INPUT); // nastaví pin kde je připojeno tlačítko jako výstup
  22.  digitalWrite(Tlacitko,HIGH); // zapnutí pullup rezistoru, aby jsme k tlačítku
  23.  // nemuseli přidávat rezistor. Tlačítko je tedy připojeno ke GND a pinu 7 !!!!!!
  24.  // Při vypnutém tlačítku vnitřní pullup rezistor připojujuje k +5V.
  25.  
  26. }
  27.  
  28. void loop() {
  29.   // zapne nebo vypne LED v závislosti na stavu proměné Svetla
  30.   digitalWrite(Led_1, Svetla);
  31.   digitalWrite(Led_2, Svetla);
  32.  
  33.  
  34.   // když je na vstupu Tlačítka logická 0 (LOW)
  35.   // !!! není spínálo log. 1, protože využíváme tzv. pulldown rezistoru v čipu
  36.   if ((digitalRead(Tlacitko)) == LOW)
  37.     {
  38.       mode++; // přičte k MODE hodnotu 1
  39.       if (mode > 6) mode = 0; // když je mode větší jak 2 tak ho vynuluj
  40.       delay(200); // prodleva proti záchvěvům tlačítka  
  41.     }
  42.    if (mode == 0) Svetla = 0; //Vypni světla
  43.    if (mode == 1) Svetla = 1; //Zapni světla
  44.    if (mode == 2) Svetla = blik_1; // Svetla zavisí na stavu promené časovače 1
  45.    if (mode == 3) Svetla = blik_2; // Svetla zavisí na stavu promené časovače 2
  46.    if (mode == 4) Svetla = blik_1 && blik_2; // logický součin časovače 1 a 2
  47.    if (mode == 5) Svetla = blik_1 || blik_2 || blik_3; // logický součet časovače 1 a 2 a 3
  48.    if (mode == 6) Svetla = blik_1 && blik_3; // logický součin časovače 2 a 3
  49.    
  50.    
  51.    // blikani 1
  52.    if ((millis() - cas_blik_1) > 400) // když celkový počet milisekund
  53.    // minus počet milisekund při poslednim "bliku" je vetši jak 400
  54.    // tady můžete nastavit rychlost blikání v počtu milisekund
  55.    {
  56.      blik_1 = !blik_1; // Blik se rovná negaci Blik (neguje proměnou)
  57.      cas_blik_1 = millis(); // zapiš poslední blik
  58.    }
  59.  
  60.    // blikani 2
  61.    if ((millis() - cas_blik_2) > 50) // když celkový počet milisekund
  62.    // minus počet milisekund při poslednim "bliku" je vetši jak 50
  63.    // tady můžete nastavit rychlost blikání v počtu milisekund
  64.    {
  65.      blik_2 = !blik_2; // Blik se rovná negaci Blik (neguje proměnou)
  66.      cas_blik_2 = millis(); // zapiš poslední blik
  67.    }
  68.  
  69.    // blikani 3
  70.    if ((millis() - cas_blik_3) > 330) // když celkový počet milisekund
  71.    // minus počet milisekund při poslednim "bliku" je vetši jak 330
  72.    // tady můžete nastavit rychlost blikání v počtu milisekund
  73.    {
  74.      blik_3 = !blik_3; // Blik se rovná negaci Blik (neguje proměnou)
  75.      cas_blik_3 = millis(); // zapiš poslední blik
  76.    }
  77.    
  78.    
  79.  
  80. }