Szerelo

Ki/be időzített kapcsolás demo

Aug 31st, 2020
1,854
344 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2.  
  3. #include "Timer.h"
  4. Timer t;
  5.  
  6. #define feny A3
  7. #define rele1 8
  8. #define rele2 13
  9.  
  10. unsigned int beIdo=10; // Mennyi ideig legyen bekapcsolva, másodpercben megadva
  11. unsigned int kiIdo=20; // Mennyi ideig legyen kikapcsolva, másodpercben megadva
  12. unsigned int beIdoCounter=0;
  13. unsigned int kiIdoCounter=kiIdo;
  14. unsigned int fenyKuszob=550;
  15. unsigned int hiszterezis=5; // A fényérzékelő hiszterézise, hogy a kapcsolási küszöbnél ne kapcsolgasson ki/be.
  16. bool nappal=true;
  17.  
  18. void setup() {
  19.   int tickEvent = t.every(1000, tick, 500);    // 1000ms clock timer
  20.   pinMode(rele1,OUTPUT);
  21.   pinMode(rele2,OUTPUT);
  22.   Serial.begin(115200);
  23.   Serial.println("Start ...");
  24. }
  25.  
  26. void loop() {
  27.   t.update();
  28.   if (analogRead(feny)>fenyKuszob+hiszterezis and nappal==false) {  // Minden váltásnál csak egyszer fut le
  29.     nappal=true;
  30.     digitalWrite(rele1,HIGH);
  31.     digitalWrite(rele2,HIGH);
  32.     Serial.println("Bekapcsolás fényérzékelésnél");
  33.     beIdoCounter=beIdo;   // Elindul a bekapcsolási időzítés. A nappal bekapcsolással kezdődik.
  34.   }
  35.   if (analogRead(feny)<fenyKuszob and nappal==true) {   // Minden váltásnál csak egyszer fut le
  36.     nappal=false;
  37.     digitalWrite(rele1,LOW);
  38.     digitalWrite(rele2,LOW);
  39.     Serial.println("Kikapcsolás fényérzékelésnél");  // Ha vége a nappalnak, akkor az időzítőtől függetlenül kikapcsolnak a kimenetek
  40.   }
  41. }
  42.  
  43. void tick() { // Minden másodpercben végrehajtódik
  44.   if (nappal==true) { // Az időzítők csak nappal működnek
  45.     if (beIdoCounter!=0){
  46.       beIdoCounter--;
  47.       if (beIdoCounter==0) {
  48.         digitalWrite(rele1,LOW);
  49.         digitalWrite(rele2,LOW);
  50.         Serial.println("Időzített kikapcsolás");
  51.         kiIdoCounter=kiIdo;   // Elindul a kikapcsolási időzítés
  52.       }
  53.     }
  54.     if (kiIdoCounter!=0){
  55.       kiIdoCounter--;
  56.       if (kiIdoCounter==0) {
  57.         digitalWrite(rele1,HIGH);
  58.         digitalWrite(rele2,HIGH);
  59.         Serial.println("Időzített bekapcsolás");
  60.         beIdoCounter=beIdo;   // Elindul a bekapcsolási időzítés
  61.       }
  62.     }
  63.   }
  64. }
  65.  
  66.  
  67. // END
RAW Paste Data