Advertisement
osromocon

Rolety na Blynku 2021-07-21

Jul 27th, 2021
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.05 KB | None | 0 0
  1. //==========Definicja czasów============
  2. #define krotka 30000
  3. #define dluga 43000
  4. #define bKrotka 5000
  5.  
  6.     void setup() {
  7. delay (15000);
  8. for ( i = 0; i <=11; i++) {
  9. //...
  10.     DeklarowanyCzasDzialaniaRolety[i] = krotka;
  11. //...
  12. } //for ( i = 0; i <=11; i++)
  13. //...
  14.     DeklarowanyCzasDzialaniaRolety[3] = dluga;
  15.     DeklarowanyCzasDzialaniaRolety[4] = dluga;
  16.     DeklarowanyCzasDzialaniaRolety[7] = bKrotka;
  17. //...
  18. } //setup
  19.  
  20.  
  21. //Seryjne wywołanie opuszczania/podnoszenia na całym piętrze:
  22.  
  23. //============CALE PIETRA===============
  24. //--------------Parter------------------
  25.   if (OtwierajCalyDol == true) {
  26.     for (i=0; i<=7; i++) {
  27.       WlacznikGoraRoletaPrim[i] = true;
  28.     }
  29.   }
  30.   if (ZamykajCalyDol == true) {
  31.     for (i=0; i<=7; i++) {
  32.       WlacznikDolRoletaPrim[i] = true;
  33.     }
  34.   }
  35. //--------------Pietro------------------
  36.   if (OtwierajCalaGore == true) {
  37.     for (i=8; i<=11; i++) {
  38.       WlacznikGoraRoletaPrim[i] = true;
  39.     }
  40.   }
  41.   if (ZamykajCalaGore == true) {
  42.     for (i=8; i<=11; i++) {
  43.       WlacznikDolRoletaPrim[i] = true;
  44.     }
  45.   }
  46.        
  47.  
  48. //======="procedury wykonawcze"=========
  49.  
  50. //============OPUSZCZANIE===============
  51.    //zacznij opuszczać roletę nr j
  52.    if (WlacznikDolRoletaPrim[j] == true && WskaznikOpuszczaniaRolety[j] == 0 && WskaznikPodnoszeniaRolety[j] == 0){
  53. //      Serial.println("Jestem w OPUSZCZANIE; PIERWSZY if A");
  54.       Blynk.virtualWrite(VirtualnyPin[j],0);  //zmiana stanu pushbuttona w telefonie n '-1' gdy ktoś wciśnie guzik na scianie
  55.       WlacznikDolRoletaPrim[j] = false;
  56.       if (WartoscNaLinijceSmartfona[j] > 0) {
  57.         digitalWrite(PrzekaznikDolRoleta[j], LOW);
  58.         StartOpuszczaniaRolety[j] = millis ();
  59.         WskaznikOpuszczaniaRolety[j] = 1;
  60.         WskaznikPodnoszeniaRolety[j] = 0;
  61.         delay(50);
  62.         }
  63.    }
  64.    //Jesli roleta j jest w trakcie opuszczania i zostanie wcisniety przycisk WlacznikDolRoleta[j] lub WlacznikGoraRoletaPrim [j] to przestan opuszczac
  65.    if (WskaznikOpuszczaniaRolety[j] == 1 && ((WlacznikDolRoletaPrim[j] == true)|| (WlacznikGoraRoletaPrim[j] == true) || (WartoscNaLinijceSmartfona[j] <= 0))){
  66.       digitalWrite(PrzekaznikDolRoleta[j], HIGH); //przestan opuszczac
  67.       WskaznikOpuszczaniaRolety[j] = 0;
  68.       WskaznikPodnoszeniaRolety[j] = 0;
  69.       WlacznikDolRoletaPrim[j] = false;
  70.       WlacznikGoraRoletaPrim[j] = false;
  71.       Blynk.virtualWrite(VirtualnyPin[j],0); //zmiana stanu pushbuttona w telefonie n '0'
  72.       delay(50);
  73.       }
  74. //==============CHYBA GDZIEŚ TU JEST PROBLEM====================    
  75.    //Przesylanie aktualnego stopnia przysloniecia na suwak w telefonie //WartoscSuwakaZeSmartfona
  76.    if (WskaznikOpuszczaniaRolety[j] == 1 && WartoscNaLinijceSmartfona[j] > 0){
  77.      if (millis() - SuwakPrzyslonieciaPoprzedni[j] > procencik * DeklarowanyCzasDzialaniaRolety[j]/100){
  78.         WartoscNaLinijceSmartfona[j] = WartoscNaLinijceSmartfona[j] - procencik;
  79.         Blynk.virtualWrite(DoLinijekSwietlnych[j],WartoscNaLinijceSmartfona[j]);
  80.         SuwakPrzyslonieciaPoprzedni[j] = millis();
  81.         }
  82.      }
  83.      
  84.      
  85. //============PODNOSZENIE===============
  86.    //zacznij podnosić roletę nr j
  87.    if (WlacznikGoraRoletaPrim[j] == true && WskaznikPodnoszeniaRolety[j] == 0 && WskaznikOpuszczaniaRolety [j] == 0){
  88. //      Serial.println("Jestem w PODNOSZENIE; PIERWSZY if A");
  89.       Blynk.virtualWrite(VirtualnyPin[j],0);  //zmiana stanu pushbuttona w telefonie n '-1' gdy ktoś wciśnie guzik na scianie
  90.       WlacznikGoraRoletaPrim[j] = false;
  91.       if (WartoscNaLinijceSmartfona[j] < 100) {
  92.         digitalWrite(PrzekaznikGoraRoleta [j], LOW); //zacznij podnosic roletę nr j
  93.         StartPodnoszeniaRolety [j] = millis ();
  94.         WskaznikPodnoszeniaRolety [j]= 1;
  95.         WskaznikOpuszczaniaRolety [j] = 0;
  96.         delay(50);
  97.         }
  98.    }
  99.    //Jesli roleta j jest w trakcie podnoszenia i zostanie wcisniety przycisk WlacznikDolRoleta[j] lub WlacznikGoraRoletaPrim [j] lub na linijce pojawi się 100 to przestan opuszczac
  100.    if (WskaznikPodnoszeniaRolety[j] == 1 && ((WlacznikDolRoletaPrim[j] == true) || (WlacznikGoraRoletaPrim[j] == true)  || (WartoscNaLinijceSmartfona[j] >= 100))){
  101.       digitalWrite(PrzekaznikGoraRoleta[j], HIGH); //przestan opuszczac
  102.       WskaznikPodnoszeniaRolety[j] = 0;
  103.       WskaznikOpuszczaniaRolety[j] = 0;
  104.       WlacznikGoraRoletaPrim[j] = false;
  105.       WlacznikDolRoletaPrim[j] = false;
  106.       Blynk.virtualWrite(VirtualnyPin[j],0); //zmiana stanu pushbuttona w telefonie n '0'
  107.       delay(50);
  108.       }
  109. //==============CHYBA GDZIEŚ TU JEST PROBLEM====================
  110.    //Przesylanie aktualnego stopnia przysloniecia na suwak w telefonie //WartoscSuwakaZeSmartfona
  111.    if (WskaznikPodnoszeniaRolety[j] == 1 && WartoscNaLinijceSmartfona[j] < 100){
  112.      if (millis() - SuwakPrzyslonieciaPoprzedni[j] > procencik * DeklarowanyCzasDzialaniaRolety[j]/100){
  113.         WartoscNaLinijceSmartfona[j] = WartoscNaLinijceSmartfona[j] + procencik;
  114.         Blynk.virtualWrite(DoLinijekSwietlnych[j],WartoscNaLinijceSmartfona[j]);
  115.         SuwakPrzyslonieciaPoprzedni[j] = millis();
  116.         }
  117.      }
  118.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement