Facebook
From Zbigniew Obręczarek, 1 Month ago, written in C++.
Embed
Download Paste or View Raw
Hits: 79
  1.  
  2. #include <Wire.h>
  3. #include <LiquidCrystal_I2C.h>
  4. LiquidCrystal_I2C lcd(0x3f, 16, 2);
  5. #define zawor 10
  6. unsigned long aktualnyCzas = 0;
  7. unsigned long roznicaCzasu = 0;
  8. unsigned long zapamietanyCzaswartosc_A0 = 0;
  9. unsigned long zapamietanyCzaswartosc_A1 = 0;
  10. unsigned long zapamietanyCzaszawor = 0;
  11. unsigned long zapamietanyCzasnastaw1 = 0;
  12. unsigned long zapamietanyCzasnastaw2 = 0;
  13. unsigned long zapamietanyCzasnastaw3 = 0;
  14. unsigned long zapamietanyCzasnastaw4 = 0;
  15. unsigned long zapamietanyCzasnastaw5 = 0;
  16. unsigned long zapamietanyCzasprogram = 0;
  17. unsigned long zapamietanyCzaszwloka1 = 0;
  18. unsigned long zapamietanyCzaszwloka2 = 0;
  19. unsigned long zapamietanyCzaszwloka3 = 0;
  20. unsigned long zapamietanyCzaszwloka4 = 0;
  21. unsigned long zapamietanyCzaszwloka5 = 0;
  22. unsigned long zapamietanyCzaszwloka_zawor = 0;
  23. int zwloka_zawor = 0;
  24. int nastaw1 = 0; int nastaw2 = 0; int nastaw3 = 0; int nastaw4 = 0; int nastaw5 = 0;
  25. int zwloka1 = 0; int zwloka2 = 0; int zwloka3 = 0; int zwloka4 = 0; int zwloka5 = 0;
  26. int nastaw = 0;
  27. int program = 0;
  28. int sensor_A0 = A0;
  29. int wartosc_A0 = 0;
  30. int poc = A1;
  31. int odczytanawartosc_A0 = 0;
  32. void setup() {
  33.   Serial.begin(9600);
  34.   pinMode (zawor, OUTPUT);
  35.   digitalWrite(zawor, HIGH);
  36.   lcd.begin();
  37.   lcd.noBlink();
  38.   lcd.noCursor();
  39. }
  40. class lccd
  41. {
  42.   public:
  43.     void wyswietlacz();
  44.     void zakres();
  45. };
  46. class czujniki
  47. {
  48.   public:
  49.     void pomiar();
  50. };
  51. class zawor1
  52. {
  53.   public:
  54.     void ustaw();
  55. };
  56. void loop()  {
  57.   aktualnyCzas = millis();
  58.   if (aktualnyCzas -  zapamietanyCzasprogram >= 20UL) {
  59.     zapamietanyCzasprogram = aktualnyCzas;
  60.     lccd opis;
  61.     opis.wyswietlacz();
  62.     opis.zakres();
  63.     czujniki gleba;
  64.     gleba.pomiar();
  65.     zawor1 wybor;
  66.     wybor.ustaw();
  67.   }
  68. }
  69. void lccd::wyswietlacz()
  70. {
  71.   lcd.backlight();
  72.   lcd.setCursor(0, 0);
  73.   lcd.print("WILGO: ");
  74.   lcd.setCursor(6, 0);
  75.   lcd.print(wartosc_A0);
  76.   lcd.print("    ");//likwiduje migotanie
  77.   lcd.setCursor(10, 0);
  78.   lcd.print("PROG:");
  79.   lcd.setCursor(15, 0);
  80.   lcd.print(nastaw);
  81.   lcd.print("    ");
  82.  
  83. }
  84. void lccd::zakres()
  85. {
  86.   if (nastaw == 1) {
  87.     lcd.backlight();
  88.     lcd.setCursor(4, 1);
  89.     // lcd.scrollDisplayLeft();
  90.     lcd.print("20 --> 40");
  91.     lcd.print("    ");
  92.   }
  93.   if (nastaw == 2) {
  94.     lcd.backlight();
  95.     lcd.setCursor(4, 1);
  96.     // lcd.scrollDisplayLeft();
  97.     lcd.print("40 --> 60");
  98.     lcd.print("    ");
  99.   }
  100.   if (nastaw == 3) {
  101.     lcd.backlight();
  102.     lcd.setCursor(4, 1);
  103.     // lcd.scrollDisplayLeft();
  104.     lcd.print("60 --> 80");
  105.     lcd.print("    ");
  106.   }
  107.   if (nastaw == 4) {
  108.     lcd.backlight();
  109.     lcd.setCursor(4, 1);
  110.     // lcd.scrollDisplayLeft();
  111.     lcd.print("80 --> 100");
  112.     lcd.print("    ");
  113.   }
  114.   if (nastaw == 5) {
  115.     lcd.backlight();
  116.     lcd.setCursor(4, 1);
  117.     // lcd.scrollDisplayLeft();
  118.     lcd.print("100 --> XXX");
  119.     lcd.print(" ");
  120.   }
  121. }
  122. void czujniki::pomiar()
  123. {
  124.   aktualnyCzas = millis();
  125.   if (aktualnyCzas -  zapamietanyCzaswartosc_A0 >= 2000UL) {
  126.     zapamietanyCzaswartosc_A0 = aktualnyCzas;
  127.     wartosc_A0 = analogRead(sensor_A0);
  128.     wartosc_A0 = map(wartosc_A0, 0, 1023, 100, 0);
  129.     Serial.println(wartosc_A0);
  130.   }
  131. }
  132.  
  133. void zawor1::ustaw()
  134. {
  135.   aktualnyCzas = millis();
  136.   if (aktualnyCzas -  zapamietanyCzaswartosc_A1 >= 10UL) {
  137.     zapamietanyCzaswartosc_A1 = aktualnyCzas;
  138.     nastaw = analogRead(poc);
  139.     nastaw = map(nastaw, 0, 1023, 1, 6);
  140.   }
  141.   // ZATRZYMANIE ODCZYTU CZUJNIKA
  142.   if (aktualnyCzas -  zapamietanyCzaszwloka_zawor >= 50000UL) {
  143.     zapamietanyCzaszwloka_zawor = aktualnyCzas;
  144.     if (nastaw == 1) {
  145.       if (aktualnyCzas -  zapamietanyCzasnastaw1 >= 100UL) {
  146.         zapamietanyCzasnastaw1 = aktualnyCzas;
  147.         if (wartosc_A0 <= 20) {
  148.           digitalWrite(zawor, LOW);
  149.         }
  150.       }
  151.       //CZAS OTWARCIA ZAWORU
  152.       if (aktualnyCzas -  zapamietanyCzaszwloka1 >= 60000UL) {
  153.         zapamietanyCzaszwloka1 = aktualnyCzas; {
  154.           digitalWrite(zawor, HIGH);
  155.         }
  156.       } if (wartosc_A0 >= 20) {
  157.         digitalWrite(zawor, HIGH);
  158.       }
  159.     }
  160.     if (nastaw == 2) {
  161.  
  162.       if (aktualnyCzas -  zapamietanyCzasnastaw2 >= 100UL) {
  163.         zapamietanyCzasnastaw2 = aktualnyCzas;
  164.         if (wartosc_A0 <= 40) {
  165.           digitalWrite(zawor, LOW);
  166.         }
  167.       }
  168.       if (aktualnyCzas -  zapamietanyCzaszwloka2 >= 60000UL) {
  169.         zapamietanyCzaszwloka2 = aktualnyCzas; {
  170.           digitalWrite(zawor, HIGH);
  171.         }
  172.       }
  173.       if (wartosc_A0 >= 40) {
  174.         digitalWrite(zawor, HIGH);
  175.       }
  176.     }
  177.     if (nastaw == 3) {
  178.       if (aktualnyCzas -  zapamietanyCzasnastaw3 >= 100UL) {
  179.         zapamietanyCzasnastaw3 = aktualnyCzas;
  180.         if (wartosc_A0 <= 60) {
  181.           digitalWrite(zawor, LOW);
  182.         }
  183.       }
  184.       if (aktualnyCzas -  zapamietanyCzaszwloka3 >= 60000UL) {
  185.         zapamietanyCzaszwloka3 = aktualnyCzas; {
  186.           digitalWrite(zawor, HIGH);
  187.         }
  188.       }
  189.       if (wartosc_A0 >= 60) {
  190.         digitalWrite(zawor, HIGH);
  191.       }
  192.     }
  193.     if (nastaw == 4) {
  194.       if (aktualnyCzas -  zapamietanyCzasnastaw4 >= 100UL) {
  195.         zapamietanyCzasnastaw4 = aktualnyCzas;
  196.         if (wartosc_A0 <= 80) {
  197.           digitalWrite(zawor, LOW);
  198.         }
  199.       }
  200.       if (aktualnyCzas -  zapamietanyCzaszwloka4 >= 60000UL) {
  201.         zapamietanyCzaszwloka4 = aktualnyCzas; {
  202.           digitalWrite(zawor, HIGH);
  203.         }
  204.       }
  205.       if (wartosc_A0 >= 80) {
  206.         digitalWrite(zawor, HIGH);
  207.       }
  208.     }
  209.     if (nastaw == 5) {
  210.       if (aktualnyCzas -  zapamietanyCzasnastaw5 >= 100UL) {
  211.         zapamietanyCzasnastaw5 = aktualnyCzas;
  212.         if (wartosc_A0 <= 100) {
  213.           digitalWrite(zawor, LOW);
  214.         }
  215.       }
  216.       if (aktualnyCzas -  zapamietanyCzaszwloka5 >= 60000UL ) {
  217.         zapamietanyCzaszwloka5 = aktualnyCzas; {
  218.           digitalWrite(zawor, HIGH);
  219.         }
  220.       }
  221.       if (wartosc_A0 >= 100)  {
  222.         digitalWrite(zawor, HIGH);
  223.       }
  224.     }
  225.   }
  226. }

Replies to PODLEWANIE rss

Title Name Language When
Re: PODLEWANIE Mustard Dove cpp 1 Month ago.