Java týden Java týden
Pouze tento týden sleva až 80 % na celý Java e-learning!
Brno? Vypsali jsme pro vás nové termíny školení OOP v Brně!
Avatar
dvorak.vit94
Člen
Avatar
dvorak.vit94:8.4.2018 17:54

Čau lidi,
řeším problém, kdy chci aby se při překročení dané teploty seplo relé, ale až teplota klesne opět na nějakou žádanou hodnotu se opět vyplo. Nevíte jak sestavit podmínku?
Zatím mám toto:

while True:
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(7, GPIO.OUT)#IN2
    ventilator = 22
    if temp_calibrated > ventilator:
        GPIO.output(7,False)
    elif temp_calibrated < 15:
        GPIO.output(7, True)

Ale toto nefunguje jak potřebuji.
Moc děkuji za pomoct

 
Odpovědět 8.4.2018 17:54
Avatar
vlcik128
Člen
Avatar
vlcik128:8.4.2018 18:09

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á.

 
Nahoru Odpovědět 8.4.2018 18:09
Avatar
dvorak.vit94
Člen
Avatar
Odpovídá na vlcik128
dvorak.vit94:8.4.2018 18:17

Myslíš:

if temp_calibrated > ventilator:
      GPIO.output(7,False)
else
        GPIO.output(7, True)

Todle?

 
Nahoru Odpovědět 8.4.2018 18:17
Avatar
vlcik128
Člen
Avatar
vlcik128:8.4.2018 21:07

Myslel som to takto:

if temp_calibrated > ventilator:
    GPIO.output(7,False)
if temp_calibrated < 15:
    GPIO.output(7, True)
Editováno 8.4.2018 21:07
 
Nahoru Odpovědět 8.4.2018 21:07
Avatar
dvorak.vit94
Člen
Avatar
Odpovídá na vlcik128
dvorak.vit94:12.4.2018 16:56

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

 
Nahoru Odpovědět 12.4.2018 16:56
Avatar
vlcik128
Člen
Avatar
vlcik128:12.4.2018 19:02

Mohol by si prosím napísať, čo ktorý riadok robí?

 
Nahoru Odpovědět 12.4.2018 19:02
Avatar
dvorak.vit94
Člen
Avatar
Odpovídá na vlcik128
dvorak.vit94:12.4.2018 19:57

Hele už dobrý, byl tam problém se zapojením, bylo to na blbém pinu..

 
Nahoru Odpovědět 12.4.2018 19:57
Avatar
Jan Roman
Člen
Avatar
Jan Roman:11.7.2018 9:56

Ahoj,
Momentálně pracuji na něčem co to obsahuje :D 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

 
Nahoru Odpovědět 11.7.2018 9:56
Avatar
Petr Oliva
Člen
Avatar
Petr Oliva:11. února 8:55

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.

 
Nahoru Odpovědět 11. února 8:55
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:11. února 11:14

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
Editováno 11. února 11:15
 
Nahoru Odpovědět 11. února 11:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.