MC2Studio

Untitled

Dec 22nd, 2020
789
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Arduino.h>
  2.  
  3. #define LED1.  8
  4. #define LED2   7
  5. #define button 3
  6.  
  7. int licznik = 0, licznik_LED=0; // licznik przyduszeń
  8. int mila; // różnica czasu pomiędzy klikami
  9. int czas = 600; // interwał 2 kliku
  10. unsigned long start_0, start_1; // startery licznika czasu
  11.  
  12. void blink()
  13. {
  14.     if (digitalRead(3)==LOW)
  15.     {
  16.         licznik ++;
  17.         start_1 = millis();
  18.     }
  19. }
  20.  
  21. void setup()
  22. {
  23.     Serial.begin ( 115200 );
  24.     Serial.print("Sketch:   ");   Serial.println(__FILE__);
  25.     Serial.print("Uploaded: ");   Serial.println(__DATE__);
  26.     Serial.println(" ");
  27.  
  28.     pinMode(LED1, OUTPUT);
  29.     pinMode(LED2, OUTPUT);
  30.     digitalWrite(LED1,LOW);
  31.     digitalWrite(LED2,LOW);
  32.     pinMode(button, INPUT);
  33.    
  34.     attachInterrupt(digitalPinToInterrupt(button), blink,FALLING); //1 czyli INT1 pin 3
  35. }
  36.  
  37. void loop()
  38. {
  39.  // odczyt stanu diody  
  40.  bool dioda1 = digitalRead(LED1);
  41.  bool dioda2 = digitalRead(LED2);
  42.  
  43. // Rozpoznanie ilości klików.  
  44. if (licznik > 0) // klik
  45.   {  
  46.       if (licznik == 1) //zaczynamy odliczanie czasu
  47.          {
  48.            start_0 = start_1;
  49.            licznik_LED= licznik;
  50.          }
  51.       // rejestracja różnicy pomiędzy klikami  
  52.       mila = (millis()-start_0);
  53.      
  54.      if (mila<czas)
  55.       {
  56.        if (licznik == 2)
  57.          {
  58.             licznik_LED= licznik;
  59.             licznik =0;
  60.          }
  61.       }
  62.       else
  63.      {
  64.        licznik = 0;
  65.      }
  66.    }
  67.  
  68.       if (licznik_LED == 1)
  69.       {
  70.           if  (dioda1 == HIGH)
  71.           {
  72.               dioda1 = LOW;
  73.           }
  74.           else
  75.           {
  76.              dioda1= HIGH;
  77.           }
  78.           digitalWrite (LED1, dioda1);
  79.          
  80.       }
  81.       if (licznik_LED == 2)
  82.       {
  83.          if  (dioda2 == HIGH)
  84.           {
  85.               dioda2 = LOW;
  86.           }
  87.           else
  88.           {
  89.              dioda2= HIGH;
  90.           }
  91.           digitalWrite (LED2, dioda2);
  92.       }
  93.        licznik_LED=0;
  94.      
  95.      Serial.print("Klik:"); Serial.print(licznik_LED);Serial.print(" stan diod D1:D2 "); Serial.print(dioda1);Serial.print(" : "); Serial.println(dioda2);
  96. }
RAW Paste Data