Diskuze: Reakce na překročení teploty

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj. Tomuto jazyku sa nevenujem, ale ak:
if temp_calibrated > ventilator:
GPIO.output(7,False)
spína relé, a
elif temp_calibrated < 15:
GPIO.output(7, True)
ho má vypnúť, tak by som namiesto elif if.
elif / else if sa vykonáva iba vtedy, ak podmienka if nie je platná.
Myslíš:
if temp_calibrated > ventilator:
GPIO.output(7,False)
else
GPIO.output(7, True)
Todle?
Nefunguje, když teplota klesá z 25 třeba dojde do 14,9, vypne se pak když opět začne stoupat teplota chvilku se drží vypnutý ale pak se zapne opět a je třeba 15,5
Hele už dobrý, byl tam problém se zapojením, bylo to na blbém pinu..
Ahoj,
Momentálně pracuji na něčem co to obsahuje sice už je to asi vyřešené
ale kdyby měl někdo zájem můžu snad pomoct. Skript který jsem udělal má
za úkol toto:
Mám elektro kotel se 3 spirálami +obehovym čerpadlem. Stav bez raspberry je
ten, že pokud sepne termostat, zapnou všechny spirály + čerpadlo. Po
dosažení teploty se kotel vypne (všechny spirály i čerpadlo). Po
připojení raspberry budu vše řídit pomocí relé a bude se to chovat tak,
že se bude vyhodnocovat teplota v kotlů a podle toho řídí jednotlivé
spirály i čerpadlo nezávislé na sobě. Vše bude závislé jen na teplotě.
Popisu chování.
Spirála 1: teplota je větší jak 75 tak se spirála vypne (pokud klesne pod
75 znovu se zapne)
Spirála 2: teplota větší jak 80 spirála se vypne (pokud klesne pod 80 tak
se zapne)
Spirála 3: teplota větší jak 90 spirála se vypne (pokud klesne pod 90 tak
se zapne)
Čerpadlo: pokud je teplota větší jak 50 tak čerpadlo točí vodu (horní
mez není stanovena)
Veškeré data (teplota v kotli, stav jednotlivých spiral a zda je čerpadlo v chodu) odesílám na IOT server který mi jede na druhém raspberry
Ahoj,
myslím, že bude potřeba nastavit určitou hysterezi, aby nedocházelo k
přecvakávání ve chíli, kdy teplota kolísá kolem spínané hodnoty. Sám
nevím, jak hysterezi napsat, ale bez toho jsou příliš namáhána relé.
Pokud by měl někdo kód pro hysterezi napsaný s vyvětlení, rád se
poučím.
Proc ta cizi slova? Potrebujes zpozdeni. To resis tak, ze si ulozis cas a
teplotu (staci stav, ale pro vymakanejsi system se sleduje zavislost teploty na
case a podle toho se reguluji mezni teploty). A sledujes stav, zda ohrivas nebo
chladis.
To jeho zadani ale nedava prilis smysl. Pokud chces neco ohrat, kazda spirala
hreje stejne, pak
sp1: t>70 vypne
sp2: t<80 zapne
Tak sp2, pokud je stejna jako sp1, tak to dokaze vyhrat take jen na 70. Cili,
musi hrat obe soucasne, pokud chce vyssi teplotu, ne?
t_mez = 70
t_minus = -10
t_plus = +10
stav=ohrivani && t<70+10 --> zapnuto
t>=70+10 --> vypnuto, stav=chlazeni
stav=chlazeni && t>70-10 --> vypnuto
t<70-10 --> zapnuto, stav=ohrivani
Po čase mám opět potřebu řešit tuto funkci. Bylo by to možné napsat takto? Na konzoli mi to funguje.
def hysteresis(actual_value, last_state=False, setpoint=85, hyst_level=4):
'''
Funkce hystereze
Definují se proměnné:
Aktuální hodnota, poslední stav, žádaná hodnota, úroveň hystereze
Příklad:
stav_vystupu = False
while True:
stav_vystupu = hysteresis(aktualni_hodnota, stav_vystupu)
'''
if (actual_value < (setpoint - hyst_level)): # je-li aktuální hodnota menší vrací se True
return True
elif (actual_value > (setpoint + hyst_level)): # je-li aktuální hodnota větší vrací se False
return False
else: # nedošlo-li ke změně, zachovej předchozí stav
return last_state
Zobrazeno 11 zpráv z 11.