Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.98 KB | None | 0 0
  1. class LEDka {
  2.   private:
  3.     byte btnPin;
  4.     byte ledPin;
  5.     unsigned long cas;
  6.     unsigned long debTime;
  7.     unsigned int debDelay = 50;     // prodleva na ošetření zákmitu
  8.     unsigned int prodleva = 2000;
  9.     unsigned int delkaSvitu = 60000;
  10.     boolean predchoziStav;
  11.  
  12.   public:
  13.     LEDka(byte bPin, byte lPin, unsigned int tProdleva, unsigned int tDelkaSvitu) {
  14.       btnPin = bPin;
  15.       ledPin = lPin;
  16.       prodleva = tProdleva;
  17.       delkaSvitu = tDelkaSvitu;
  18.  
  19.       pinMode(btnPin, INPUT);
  20.       pinMode(ledPin, OUTPUT);
  21.       digitalWrite(ledPin, LOW);
  22.       predchoziStav = digitalRead(btnPin);
  23.     }
  24.  
  25.     void smycka() {
  26.       boolean stav = digitalRead(btnPin);
  27.  
  28.       if (stav != predchoziStav && (millis() - debTime > debDelay || millis() < debTime)) {
  29.         Serial.print ("Tlacitko ");
  30.         Serial.print (btnPin);
  31.  
  32.         if (!stav) {
  33.           // Tlačítko sepnuto
  34.           Serial.print (" sepnuto");
  35.           cas = millis();
  36.           digitalWrite(ledPin, HIGH);
  37.         } else {
  38.           // Tlačítko uvolněno
  39.           Serial.print (" rozepnuto");
  40.           int delkaStisku = millis() - cas;
  41.           Serial.print ("\tDelka stisku: ");
  42.           Serial.print (delkaStisku);
  43.           if (delkaStisku < prodleva) {
  44.             digitalWrite(ledPin, LOW);
  45.             cas = 0;
  46.           }
  47.         }
  48.         Serial.println();
  49.  
  50.         debTime = millis();
  51.         predchoziStav = stav;
  52.       }
  53.  
  54.       // Po uplynutí délky svitu zhasne ledku
  55.       if (cas > 0 && (millis() - cas > delkaSvitu || millis() < cas)) {
  56.         Serial.print("Cas pro led ");
  57.         Serial.print (ledPin);
  58.         Serial.println (" uplynul zhasinam LED");
  59.         digitalWrite(ledPin, LOW);
  60.         cas = 0;
  61.       }
  62.  
  63.     }
  64.  
  65. };
  66.  
  67.  
  68. LEDka led1(2, 13, 2000, 60000); // btnPin, ledPin, prodlevaStisku, delkaSvitu
  69. LEDka led2(3, 4, 2000, 60000);
  70.  
  71. void setup() {
  72.   Serial.begin(9600);
  73.  
  74. }
  75.  
  76. void loop() {
  77.  
  78.   led1.smycka();
  79.   led2.smycka();
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement