Cykliczne załączanie / wyłączanie przekaźnika

User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Pracuję na nową wersją sterownika do oczyszczalni w którym pompa-dmuchawa jest cyklicznie załączana / wyłączana na określony czas . Do tej pory wyglądało to tak :

Code: Select all


void loop() {

      if (Automat->isOn()) {
    if ((Pump->isOn()) and  (millis() - pm_lastmillis) >= tab_time_on[nr_programu]*1000) {
        pm_lastmillis = millis();  
        Pump -> turnOff();
    }
    if ( !(Pump->isOn()) and  (millis() - pm_lastmillis) >= tab_time_off[nr_programu]*1000) {
        pm_lastmillis = millis();
        Pump->turnOn(); 
    }        
  }
  
  SuplaDevice.iterate();
}
Czy da się to zrobić jakoś inaczej bardziej profesjonalnie :)
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

Ogólnie do turnOn i turnOff możesz przekazać w parametrze czas załączenia lub wyłączenia.
Ale tutaj jest cykliczne przełączanie więc to trochę nie pasuje, ale dałyby timer widoczny w apce.

Jakie czasy załączenia i wyłączenia używasz?
Najlepsze suple dla Twojego domu :mrgreen:
djalex
Posts: 1226
Joined: Fri Dec 20, 2019 10:59 pm
Location: Rydułtowy
Has thanked: 2 times
Been thanked: 2 times

Post

shimano73 wrote: Sun Dec 21, 2025 6:57 pm Pracuję na nową wersją sterownika do oczyszczalni w którym pompa-dmuchawa jest cyklicznie załączana / wyłączana na określony czas . Do tej pory wyglądało to tak :

Code: Select all


void loop() {

      if (Automat->isOn()) {
    if ((Pump->isOn()) and  (millis() - pm_lastmillis) >= tab_time_on[nr_programu]*1000) {
        pm_lastmillis = millis();  
        Pump -> turnOff();
    }
    if ( !(Pump->isOn()) and  (millis() - pm_lastmillis) >= tab_time_off[nr_programu]*1000) {
        pm_lastmillis = millis();
        Pump->turnOn(); 
    }        
  }
  
  SuplaDevice.iterate();
}
Czy da się to zrobić jakoś inaczej bardziej profesjonalnie :)
Z ciekawości tylko spytam: A czemu nie chcesz skorzystać z gotowego przekaźnika czasowego w którym można ustawić pracę cykliczną i 2 czasy - pracy i przerwy?
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

klew wrote: Sun Dec 21, 2025 9:37 pm Ogólnie do turnOn i turnOff możesz przekazać w parametrze czas załączenia lub wyłączenia.
Ale tutaj jest cykliczne przełączanie więc to trochę nie pasuje, ale dałyby timer widoczny w apce.

Jakie czasy załączenia i wyłączenia używasz?
Czasy które używam to od 1 min do 15min, ten timer w apce były to fajny bonus. Gdy robiłem ten soft poprzednio nie można było kontrolować czasu np. załączenia jak to teraz wygląda ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

shimano73 wrote: Sun Dec 21, 2025 10:01 pm Czasy które używam to od 1 min do 15min, ten timer w apce były to fajny bonus. Gdy robiłem ten soft poprzednio nie można było kontrolować czasu np. załączenia jak to teraz wygląda ?
Trochę nie rozumiem pytania.
Co to znaczy "nie moża było kontrować czasu np. załączenia"? Jak chcesz go kontrolować? Z poziomu apki jest dostępny tylko timer, ale to jest takie ustawienie jednorazowe.
Nie ma żadnego parametru konfiguracyjnyego w Cloud/apce, który pozwoliłby Ci ustawić oba czasy (włączenia i wyłączenia).
Natomiast bez problemu możesz coś takiego sobie na "szytwno" w sofcie ustawić, lub modyfikowane przez www urządzenia.
Można by to też obejść i udostępnić dwa "przekaźniki" z funkcją "timera schodowego" - na jednym byś konfigurował czas włączenia, a na drugim wyłączenia - tylko trzeba by trochę więcej w sofcie pogrzebać, aby to razem spiąć.
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

klew wrote: Mon Dec 22, 2025 8:34 am
shimano73 wrote: Sun Dec 21, 2025 10:01 pm Czasy które używam to od 1 min do 15min, ten timer w apce były to fajny bonus. Gdy robiłem ten soft poprzednio nie można było kontrolować czasu np. załączenia jak to teraz wygląda ?
Trochę nie rozumiem pytania.
Co to znaczy "nie moża było kontrować czasu np. załączenia"? Jak chcesz go kontrolować? Z poziomu apki jest dostępny tylko timer, ale to jest takie ustawienie jednorazowe.
Nie ma żadnego parametru konfiguracyjnyego w Cloud/apce, który pozwoliłby Ci ustawić oba czasy (włączenia i wyłączenia).
Natomiast bez problemu możesz coś takiego sobie na "szytwno" w sofcie ustawić, lub modyfikowane przez www urządzenia.
Można by to też obejść i udostępnić dwa "przekaźniki" z funkcją "timera schodowego" - na jednym byś konfigurował czas włączenia, a na drugim wyłączenia - tylko trzeba by trochę więcej w sofcie pogrzebać, aby to razem spiąć.
Chodziło mi oto jak sprawdzić, że ustawiony czas w turnOn(60*1000) już upłynął aby można było uruchomić turnOff(180*1000) ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
klew
Posts: 13907
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

shimano73 wrote: Mon Dec 22, 2025 12:02 pm
Dorzuciłem do Relay metodę: enableCyclicMode(czas_włącznie_ms, czas_wyłączenia_ms);

Jak to odpalisz na przekaźniku, to będzie się cyklicznie włączał i wyłączał.
Jeśli zrobisz na nim z apki/clouda: wyłącz, to przestanie się przełączać.
Jak dasz "włącz", to będzie cykał.

Jak w apce ustawisz mu timer "włączony na 30 s", to tyle będzie trwało włączenie w cyklu.
Jak w apce ustawisz timer "wyłączony na 15 s" to tyle będzie trawło wyłączanie cyklu.
Te czasy się nie zapamiętują, więc jak zrobisz reset urządzenia, to wróci do czasów ustawiony w "enableCyclicMode" - (można to kiedyś rozbudować i dodać)
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

klew wrote: Mon Dec 22, 2025 2:16 pm
shimano73 wrote: Mon Dec 22, 2025 12:02 pm
Dorzuciłem do Relay metodę: enableCyclicMode(czas_włącznie_ms, czas_wyłączenia_ms);

Jak to odpalisz na przekaźniku, to będzie się cyklicznie włączał i wyłączał.
Jeśli zrobisz na nim z apki/clouda: wyłącz, to przestanie się przełączać.
Jak dasz "włącz", to będzie cykał.

Jak w apce ustawisz mu timer "włączony na 30 s", to tyle będzie trwało włączenie w cyklu.
Jak w apce ustawisz timer "wyłączony na 15 s" to tyle będzie trawło wyłączanie cyklu.
Te czasy się nie zapamiętują, więc jak zrobisz reset urządzenia, to wróci do czasów ustawiony w "enableCyclicMode" - (można to kiedyś rozbudować i dodać)
Wow, Dziękuje Bardzo
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)

Return to “Arduino IDE”