[Rozwiązany] Automatyczna dolewka wody

Pytania, kody i porady dotyczące nie tylko Bascom.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

[Rozwiązany] Automatyczna dolewka wody

Post autor: pimowo » 14 lis 2020, 17:01

Hej,
Pomóżcie mi nie zalać mieszkania ;)
Chciałbym do swojego sterownika dodać opcję dolewania wody, ale musi to być jakoś zabezpieczone aby nie narobić sobie bałaganu i wymyśliłem sobie coś takiego:
1. pompa wody 12V + zasilacz 230VAC->12VDC ale sterowanie ma się odbywać poprzez załączanie napięcia 230V (triak + optotiak)
2. czujnik pływakowy
poziom-cieczy.jpg
Wszytko ma działać na jednym czujniku NO - myślałem też aby dodać drugi nad lustrem wody, ale NC - jeżeli z jakiegoś powodu pierwszy by nie zadziałał to drugi przerwie obwód.

Co chciałbym uzyskać?
Działać ma to tak, co 10ms program sprawdza stan pływaka
1. jeżeli stan wody jest OK to pływak ma przerwany obwód i program sobie idzie dalej nic nie robiąc
2. jeżeli stan wody jest poniżej ustalonego:
- program odczekuje ustalony czas, dla przykładu 5 sekund - chodzi o jakieś falowanie wody czy coś
- załącza pompę i odlicza ustalony czas, dla przykładu 15 sekund - chodzi o to aby nie przelać akwarium w razie jakieś awarii lub aby pompa nie pracowała na sucho gdy nie ma wody w dolewce
- jeżeli pompa będzie dolewać wodę, a pływak zaraportuje poprawny stan przed upływem 15 sekund to po prostu program wyłącza pompę i ma iść dalej
- jeżeli pompa będzie dolewać wodę, a pływak nie zaraportuje poprawnego stanu w ciągu 15 sekund to pompa zostanie rozłączona i zostanie uruchomiony alarm
3. jeżeli występuje alarm to można go tylko skasować:
- poprzez dolanie wody do zbiornika dolewki - brakło wody i pompa nie mogła dolać wody w ustalonym czasie
- poprzez dolanie wody do akwarium - brakło wody w dolewce lub pływak się zaciął

Kod okrojony do totalnego minimum.
  1. $regfile = "m328pdef.dat"
  2. $crystal = 16000000
  3. $hwstack = 64
  4. $swstack = 64
  5. $framesize = 128
  6.  
  7. Config Watchdog = 2048
  8.  
  9. Config Timer2 = Timer , Prescale = 1024 , Compare_a = Disconnect , Compare_b = Disconnect , Clear_timer = 1
  10.    Compare2a = 155                                          '10ms@16MHz/1024
  11.  
  12. Plywak Alias Pinb.3 : Config Plywak = Input : Set Plywak    'krancowka/pływak
  13. Pompa Alias Portb.1 : Config Pompa = Output : Reset Pompa   'pompa dolewki
  14. Buzz Alias Portc.0 : Config Buzz = Output : Reset Buzz      'buzzer
  15.  
  16. Dim 100ms , 1s , 10s As Byte
  17.  
  18. Dim Alarm As Byte
  19.  
  20. Dim Dolewka , Dolewka_opoznienie , Dolewka_czas , Dolewaj As Byte
  21.  
  22. Dim Czas_opoznienia As Byte
  23. Dim Czas_dolewania As Byte
  24.  
  25. Dolewka_opoznienie = 0
  26. Dolewka_czas = 0
  27.  
  28. Czas_opoznienia = 5
  29. Czas_dolewania = 15
  30.  
  31. Alarm = 0
  32.  
  33. Enable Interrupts
  34.  
  35. Start Watchdog
  36.  
  37. Do
  38.  
  39.    If Tifr2.ocf2a = 1 Then
  40.  
  41.       Tifr2.ocf2a = 1
  42.  
  43.       Gosub Sprawdz_wejscia
  44.  
  45.       If 100ms < 9 Then
  46.  
  47.          Incr 100ms
  48.  
  49.       Else
  50.  
  51.          100ms = 0
  52.  
  53.          Reset Buzz
  54.  
  55.          If 1s < 9 Then
  56.  
  57.             Incr 1s
  58.  
  59.          Else
  60.  
  61.             1s = 0
  62.  
  63.             Reset Watchdog
  64.  
  65.             If Dolewka = 1 Then
  66.  
  67.                Dolewka = 0
  68.  
  69.                If Dolewka_opoznienie > 0 Then
  70.  
  71.                   Decr Dolewka_opoznienie
  72.  
  73.                Else
  74.  
  75.                   Dolewka_opoznienie = 0
  76.                   Dolewka_czas = Czas_dolewania
  77.  
  78.                   Set Pompa
  79.  
  80.                End If
  81.  
  82.             End If
  83.  
  84.             If Dolewka_czas > 0 Then
  85.  
  86.                Decr Dolewka_czas
  87.  
  88.             Else
  89.  
  90.                Dolewka_czas = 0
  91.  
  92.                Reset Pompa
  93.  
  94.                Alarm = 1
  95.  
  96.             End If
  97.  
  98.             If 10s < 9 Then
  99.  
  100.                Incr 10s
  101.  
  102.             Else
  103.  
  104.                10s = 0
  105.  
  106.                If Alarm = 1 Then Set Buzz
  107.  
  108.             End If
  109.  
  110.          End If
  111.  
  112.       End If
  113.  
  114.    End If
  115.  
  116. Loop
  117. End
  118.  
  119. Sprawdz_wejscia:
  120.  
  121.    If Plywak = 0 Then
  122.  
  123.       Dolewka = 1
  124.  
  125.       Dolewka_opoznienie = Czas_opoznienia
  126.  
  127.    Else
  128.  
  129.       Dolewka = 0
  130.       Dolewka_opoznienie = 0
  131.       Dolewka_czas = 0
  132.  
  133.       Reset Pompa
  134.  
  135.       Alarm = 0
  136.  
  137.    End If
  138.  
  139. Return
Kombinuję ale coś mi to kompletnie nie idzie. Jak napisać takie zależności?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 18 lis 2020, 11:33 przez pimowo, łącznie zmieniany 1 raz.
Awatar użytkownika
Henryk
Posty: 348
Rejestracja: 22 sty 2018, 17:20

Re: Automatyczna dolewka wody

Post autor: Henryk » 14 lis 2020, 19:29

Witam :D
Dobry pomysł zawsze w cenie , może być kiedyś przydatny ;) nie rozumie tylko dlaczego masz zamiar komplikować sobie życie elektroniką :?:
Pojemnik 5- 10 litrów wody do uzupełniania + twoja pompka + czujnik pływakowy i sprawa załatwiona .
W domowym kiblu masz zwykły zawór pływakowy i jakoś nie martwisz się że przypadkiem zaleje Tobie mieszkanie 8-) daj spokój z tym mikroprocesorem .
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Automatyczna dolewka wody

Post autor: pimowo » 14 lis 2020, 19:37

Henryk pisze:nie rozumie tylko dlaczego masz zamiar komplikować sobie życie elektroniką :?:
To jest tylko mały trybik z czegoś większego ;)
Henryk pisze:Pojemnik 5- 10 litrów wody do uzupełniania + twoja pompka + czujnik pływakowy i sprawa załatwiona.
I tak właśnie ma być, zbiornik 5-10l i do tego pompka, ale dodatkowo uC który będzie nad tym czuwał.
Henryk pisze:W domowym kiblu masz zwykły zawór pływakowy i jakoś nie martwisz się że przypadkiem zaleje Tobie mieszkanie 8-)
W domowych kiblach mamy awaryjny odpływ w spłuczce, a w akwarium niestety nie. Nawet jak spłuczka by się zacięła to woda odpłynie do kibelka, a w akwarium woda odpłynie na dywan.
Awatar użytkownika
Henryk
Posty: 348
Rejestracja: 22 sty 2018, 17:20

Re: Automatyczna dolewka wody

Post autor: Henryk » 14 lis 2020, 19:45

Akwarium nigdy nie napełniasz po krawędź , policz ile wody potrzeba do powiedzmy 10mm od przepełnienie i taki zapas wody mieć w pojemniku .
Takim sposobem nie masz zmartwienie , że przelejesz akwarium :) im więcej elektroniki , tym większe niebezpieczeństwo , że kiedyś będzie ten dzień krytyczny .
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Automatyczna dolewka wody

Post autor: pimowo » 14 lis 2020, 20:43

Jednak chciałbym zostać przy swoim pomyśle z uC - dodatkowo, przy okazji będę miał alarmy dźwiękowe, e-mail czy SMS ;)
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Automatyczna dolewka wody

Post autor: Jacek » 14 lis 2020, 22:02

Witam - jak już pchasz uC to zrób pomiar lustra wody na ultradźwiękach i sterowanie PWM pompki jeżeli będzie DC.
pozdrawiam Jacek.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Automatyczna dolewka wody

Post autor: pimowo » 14 lis 2020, 22:46

Już myślałem o czujniku ultradźwiękowym, ale coś nie jestem do końca przekonany do tego pomysłu - dużo wilgoci nad akwarium.
Pompę mam taką:
pompa.jpg
LINK
Teraz dokupiłem drugą z myślą o dolewce, ale moja pierwsza działa już od dwóch lat pompując raz w tygodniu 60l wody przy podmianie wody w akwarium.

Mylę, że sprzęt mam już wybrany i nie będę tego zmieniał, brakuje mi tylko kawałka kodu, aby tym sterować, a kompletnie nie wiem jak się za to zabrać - zwykłe włącz/wyłącz to nie problem, ale chciałbym mieć to troszkę bardziej rozbudowane.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Automatyczna dolewka wody

Post autor: pimowo » 15 lis 2020, 13:40

Coś ruszyło:
  1. $regfile = "m328pdef.dat"
  2. $crystal = 16000000
  3.  
  4. $hwstack = 64
  5. $swstack = 64
  6. $framesize = 128
  7.  
  8. $baud = 115200
  9.  
  10. Debug On
  11.  
  12. Config Watchdog = 2048
  13.  
  14. Config Timer2 = Timer , Prescale = 1024 , Compare_a = Disconnect , Compare_b = Disconnect , Clear_timer = 1
  15.    Compare2a = 155                                          '10ms@16MHz/1024
  16.  
  17. Plywak Alias Pinb.3 : Config Plywak = Input : Set Plywak    'krancowka/pływak
  18. Pompa Alias Portb.1 : Config Pompa = Output : Reset Pompa   'pompa dolewki
  19. Buzz Alias Portc.0 : Config Buzz = Output : Reset Buzz      'buzzer
  20.  
  21. Dim 100ms , 1s , 10s As Byte
  22.  
  23. Dim Alarm As Byte
  24.  
  25. Dim Dolewka , Dolewka_opoznienie , Dolewka_czas As Byte
  26.  
  27. Dim Czas_opoznienia As Byte
  28. Dim Czas_dolewania As Byte
  29.  
  30. Dolewka_opoznienie = 0
  31. Dolewka_czas = 0
  32.  
  33. Czas_opoznienia = 5
  34. Czas_dolewania = 15
  35.  
  36. Alarm = 0
  37.  
  38. Debug "START"
  39.  
  40. Enable Interrupts
  41.  
  42. Start Watchdog
  43.  
  44. Do
  45.  
  46.    If Tifr2.ocf2a = 1 Then
  47.  
  48.       Tifr2.ocf2a = 1
  49.  
  50.       Gosub Sprawdz_wejscia
  51.  
  52.       If 100ms < 9 Then
  53.  
  54.          Incr 100ms
  55.  
  56.       Else
  57.  
  58.          100ms = 0
  59.  
  60.          Reset Buzz
  61.  
  62.          If 1s < 9 Then
  63.  
  64.             Incr 1s
  65.  
  66.          Else
  67.  
  68.             1s = 0
  69.  
  70.             Reset Watchdog
  71.  
  72.             If Dolewka_opoznienie > 0 Then
  73.  
  74.                Debug Dolewka_opoznienie
  75.  
  76.                Decr Dolewka_opoznienie
  77.  
  78.                If Dolewka_opoznienie = 0 Then
  79.  
  80.                   Set Pompa
  81.  
  82.                   Debug "dolewam"
  83.  
  84.                   Dolewka_czas = Czas_dolewania
  85.  
  86.                End If
  87.  
  88.             End If
  89.  
  90.             If Dolewka_czas > 0 Then
  91.  
  92.                Debug Dolewka_czas
  93.  
  94.                Decr Dolewka_czas
  95.  
  96.                If Dolewka_czas = 0 Then
  97.  
  98.                   Reset Pompa
  99.  
  100.                   Debug "alarm"
  101.  
  102.                   Alarm = 1
  103.  
  104.                End If
  105.  
  106.             End If
  107.  
  108.             If 10s < 9 Then
  109.  
  110.                Incr 10s
  111.  
  112.             Else
  113.  
  114.                10s = 0
  115.  
  116.                If Alarm = 1 Then Set Buzz
  117.  
  118.             End If
  119.  
  120.          End If
  121.  
  122.       End If
  123.  
  124.    End If
  125.  
  126. Loop
  127. End
  128.  
  129. Sprawdz_wejscia:
  130.  
  131.    If Plywak = 0 Then
  132.  
  133.       Dolewka_opoznienie = Czas_opoznienia
  134.  
  135. '   Else
  136.  
  137. '      Debug "dolane"
  138.  
  139. '      Reset Pompa
  140.  
  141. '      Dolewka_opoznienie = 0
  142. '      Dolewka_czas = 0
  143. '      Alarm = 0
  144.  
  145.    End If
  146.  
  147. Return
Zamiast pływaka mam przycisk, a zamiast pompy diodę LED, no i po kliknięciu przycisku program się odpala, pompa odczekuje ustalony czas i zaczyna dolewać przez ustalony czas:
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
  6. dolewam
  7. 15
  8. 14
  9. 13
  10. 12
  11. 11
  12. 10
  13. 9
  14. 8
  15. 7
  16. 6
  17. 5
  18. 4
  19. 3
  20. 2
  21. 1
  22. alarm

tylko, że nie o to mi chodziło bo jeżeli przycisk przytrzymam to w kółko program startuje.
Jak to zrobić, że jeżeli pływak opadnie czyli pojawia się stan niski to program ruszy tylko raz?
Slaw0
Posty: 3
Rejestracja: 19 wrz 2020, 20:21

Re: Automatyczna dolewka wody

Post autor: Slaw0 » 15 lis 2020, 20:19

To mój pierwszy post, więc Witam Wszystkich.
Wydaje mi się że trzeba wykrywać zbocze, np przy użyciu zmiennej pomocniczej bitowej.
  1. if pinx.x =1 then
  2.   If pom_bit=1 then
  3.   'Twój kod co wykona się raz, nawet jak sygnał będzie
  4.   ' cały czas 1
  5.   Pom_bit=0
  6.   End if
  7. Else
  8. Pom_bit=1
  9. End if
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Automatyczna dolewka wody

Post autor: pimowo » 15 lis 2020, 20:50

Slaw0 pisze:To mój pierwszy post, więc Witam Wszystkich.
Witam serdecznie na forum :D

Dziś po obiadku, z pełnym brzuszkiem usiadłem do mojego pomysłu i... i chyba się udało, program zaczął działać, a tak się rozpędziłem, że dodałem kilka dodatkowych funkcji - w tej chwili działa to tak:
1. gdy godzina jest większa od 8, ale jednocześnie mniejsza niż 20 i jest to pełna godzina to włącz możliwość dolewania - w docelowym sterowniku i tak będzie RTC więc postanowiłem to wykorzystać
2. gdy jest możliwość dolewania, a poziom wody jest OK to nic nie rób
3. gdy jest możliwość dolewania, a poziom wody jest poniżej ustalonego przez czujnik pływakowy to:
- odczekaj 5 sekund
- załącz pompę i dolewaj wodę
- jeżeli w ciągu 15 sekund czujnik pływakowy zaraportuje poprawny stan to wyłącz pompę i czekaj na następną możliwość dolewania wody
- jeżeli czujnik wody nie zaraportuje poprawnego stanu wody w ciągu 15 sekund to zostanie wyłączona pompa, zostanie włączony alarm i zostaje "założona" blokada na dalsze dolewki - brak możliwości dolewania wody
Aby "zdjąć" blokadę to należy usunąć awarię i zresetować sterownik.

Kod na tą chwilę wygląda tak, muszę usiąść do optymalizacji tego i niedługo będę robił testy na "żywym organizmie" :D
  1. $regfile = "m328pdef.dat"
  2. $crystal = 16000000
  3.  
  4. $hwstack = 64
  5. $swstack = 64
  6. $framesize = 128
  7.  
  8. $baud = 115200
  9.  
  10. Debug On
  11.  
  12. Config Watchdog = 2048
  13.  
  14. Config Timer2 = Timer , Prescale = 1024 , Compare_a = Disconnect , Compare_b = Disconnect , Clear_timer = 1
  15.    Compare2a = 155                                          '10ms@16MHz/1024
  16.  
  17. Plywak Alias Pinb.3 : Config Plywak = Input : Set Plywak    'krancowka/pływak
  18. Pompa Alias Portb.1 : Config Pompa = Output : Reset Pompa   'pompa dolewki
  19. Buzz Alias Portc.0 : Config Buzz = Output : Reset Buzz      'buzzer
  20.  
  21. $lib "i2c_twi.lbx"                                          'biblioteka TWI
  22. Config Scl = Portc.5                                        'pin SCL
  23. Config Sda = Portc.4                                        'pin SDA
  24. Config Twi = 400000                                         'prędkość TWI
  25. I2cinit
  26.  
  27. $lib "ds1307clock.lib"
  28. Const Ds3231w = 208
  29. Const Ds3231r = 209
  30.  
  31. Config Clock = User
  32. Config Date = Dmy , Separator = /
  33.  
  34. Dim 100ms , 1s , 10s As Byte
  35. Dim Blokada , Alarm As Byte
  36. Dim Dolewka , Dolewka_opoznienie , Dolewka_czas As Byte
  37. Dim Odpal_dolewke , Czas_opoznienia , Czas_dolewania As Byte
  38.  
  39. Odpal_dolewke = 0
  40. Dolewka_opoznienie = 0
  41. Dolewka_czas = 0
  42. Czas_opoznienia = 5
  43. Czas_dolewania = 15
  44. Blokada = 0
  45. Alarm = 0
  46.  
  47. Debug "START"
  48.  
  49. Dim X As Byte
  50.  
  51. For X = 1 To 15
  52.  
  53.    Toggle Buzz
  54.  
  55.    Waitms 20
  56.  
  57. Next
  58.  
  59. Reset Buzz
  60.  
  61. Enable Interrupts
  62.  
  63. Start Watchdog
  64.  
  65. Do
  66.  
  67.    If Tifr2.ocf2a = 1 Then
  68.  
  69.       Tifr2.ocf2a = 1
  70.  
  71.       Gosub Sprawdz_wejscia
  72.  
  73.       If 100ms < 9 Then
  74.  
  75.          Incr 100ms
  76.  
  77.       Else
  78.  
  79.          100ms = 0
  80.  
  81.          Reset Buzz
  82.  
  83.          If 1s < 9 Then
  84.  
  85.             Incr 1s
  86.  
  87.          Else
  88.  
  89.             1s = 0
  90.  
  91.             Reset Watchdog
  92.  
  93.             Gosub Getdatetime
  94.  
  95.             If Dolewka_opoznienie > 0 Then
  96.  
  97.                Debug Dolewka_opoznienie
  98.  
  99.                Decr Dolewka_opoznienie
  100.  
  101.                If Dolewka_opoznienie = 0 Then
  102.  
  103.                   Set Pompa
  104.  
  105.                   Debug "dolewam"
  106.  
  107.                   Dolewka_czas = Czas_dolewania
  108.  
  109.                End If
  110.  
  111.             End If
  112.  
  113.             If Dolewka_czas > 0 Then
  114.  
  115.                Debug Dolewka_czas
  116.  
  117.                Decr Dolewka_czas
  118.  
  119.                If Dolewka_czas = 0 Then
  120.  
  121.                   Reset Pompa
  122.  
  123.                   Debug "Alarm!"
  124.  
  125.                   Alarm = 1
  126.  
  127.                End If
  128.  
  129.             End If
  130.  
  131.             If 10s < 9 Then
  132.  
  133.                Incr 10s
  134.  
  135.             Else
  136.  
  137.                10s = 0
  138.  
  139.                If Alarm = 1 Then Set Buzz
  140.  
  141.             End If
  142.  
  143.          End If
  144.  
  145.       End If
  146.  
  147.    End If
  148.  
  149. Loop
  150. End
  151.  
  152. Sprawdz_wejscia:
  153.  
  154.    If Plywak = 0 Then
  155.  
  156.       If Odpal_dolewke = 1 Then
  157.  
  158.          If Alarm = 0 Then
  159.  
  160.             If Blokada = 0 Then
  161.  
  162.                Blokada = 1
  163.  
  164.                Dolewka_opoznienie = Czas_opoznienia
  165.  
  166.                Debug "zacznij liczyc"
  167.  
  168.             End If
  169.  
  170.          End If
  171.  
  172.       End If
  173.  
  174.    Else
  175.  
  176.       Reset Pompa
  177.  
  178.       Blokada = 0
  179.       Dolewka_opoznienie = 0
  180.       Dolewka_czas = 0
  181.  
  182.    End If
  183.  
  184. Return
  185.  
  186. '--- czytaj datę i czas
  187.  
  188. Getdatetime:
  189.  
  190.    I2cstart                                                 ' Generate start code
  191.    I2cwbyte Ds3231w                                         ' send address
  192.    I2cwbyte 0                                               ' start address in 1307
  193.    I2cstart                                                 ' Generate start code
  194.    I2cwbyte Ds3231r                                         ' send address
  195.    I2crbyte _sec , Ack
  196.    I2crbyte _min , Ack                                      ' MINUTES
  197.    I2crbyte _hour , Ack                                     ' Hours
  198.    'I2crbyte Weekday , Ack                                   ' Day of Week
  199.    I2crbyte _day , Ack                                      ' Day of Month
  200.    I2crbyte _month , Ack                                    ' Month of Year
  201.    I2crbyte _year , Nack                                    ' Year
  202.    I2cstop
  203.  
  204.    _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  205.    _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
  206.  
  207.    If _hour > 8 Then
  208.  
  209.       If _hour < 20 Then
  210.  
  211.          If _min = 0 Then
  212.  
  213.             Odpal_dolewke = 1
  214.  
  215.          Else
  216.  
  217.             Reset Pompa
  218.  
  219.             Odpal_dolewke = 0
  220.             Blokada = 0
  221.             Dolewka_opoznienie = 0
  222.             Dolewka_czas = 0
  223.  
  224.          End If
  225.  
  226.       End If
  227.  
  228.    End If
  229.  
  230. Return
  231.  
  232. '--- zapisz datę
  233.  
  234. Setdate:
  235.  
  236.    _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  237.  
  238.    I2cstart                                                 ' Generate start code
  239.    I2cwbyte Ds3231w                                         ' send address
  240.    I2cwbyte 4                                               ' starting address in 1307
  241.    I2cwbyte _day                                            ' Send Data to SECONDS
  242.    I2cwbyte _month                                          ' MINUTES
  243.    I2cwbyte _year                                           ' Hours
  244.    I2cstop
  245.  
  246. Return
  247.  
  248. '--- zapisz czas
  249.  
  250. Settime:
  251.  
  252.    _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  253.  
  254.    I2cstart                                                 ' Generate start code
  255.    I2cwbyte Ds3231w                                         ' send address
  256.    I2cwbyte 0                                               ' starting address in 1307
  257.    I2cwbyte _sec                                            'sekunda
  258.    I2cwbyte _min                                            'minuta
  259.    I2cwbyte _hour                                           'godzina
  260.    I2cstop
  261.  
  262. Return
*czas opóźnienia, czas pracy pompy i godziny pracy dolewki zapewne się zmienią, ale od czegoś testy trzeba zacząć ;)
ODPOWIEDZ