Sziasztok,
Végre 99%-os készültségű lett a pálinkafőzde vezérlését végző fejlesztésem, ezzel dicsekedve feltöltök néhány fényképet róla.
Valójában két probléma merült fel ami a stabil működést akadályozza.
A hűtőtörnyoknak a hűtését egy Mega lapka végzi, a két torony hűtővíz hőmérsékletét figyeli, ha eléri a beállított hőmérsékletet egy relé behúz, ami egy mágnesszelepet nyit, így a hűtővizet cseréli a tornyokban. Ha a megadott érték alá hűlt, akkor relé kikapcsol, mágnesszelep zár. Ezen kívül még egy NRF24L01-es jeladón továbbítja a mért értékeket, és a relé állapotokat, majd egy PC-n Labview csinálja a megjelenítést.
Első probléma: nem stabil a működés van, hogy egy nap egyszer-kétszer, de van hogy napokig nem, de egyszerűen leáll a számolás, a belső Wdt nem segít. Ez legtöbbször a relé kapcsolása után történik. Külön tápon van a relé és a lapka, a relé 7,5V-os kapcsolóüzemű univerzális tápegyég, a relé egy 5V-os telefontöltőről üzemel, a (kicsi olcsó kínai optokapus reléegységgel). Szerintem egy küső Wdt-áramkör biztos megoldást jelentene, tudom ágyúval verébre, de már nincs más ötletem. Nem találtam sehol leírást, hogy hogyan kell ezt megoldani külsőleg.
Arduino kód : http://indabox.hu/bJtCIP
A másik probléma egy másik részegységet érint, aminél már sokat segítettetek. Itt egy Mega lapka mér 6 különböző hőmérsékletet két külön üstnél egy-egy füstöt, egy-egy a folyadékot, és egy-egy a sisakok belső hőmérsékletét. Egy relé soron keresztül hőmérsékletekre kapcsoltatom fel az adott egységek 12V-os világítását, és az egyik üstnél PID vezérléssel egy 0-90 fok között egy Nema17-es léptetőmotorral a megadott füstgázhőmérsékleten tartom a főzőüst teljesítményét. Az adatok megjelennek egy Nextion HMI-n, és a cél hőmérsékletet is itt lehet beállítani. Újdonság, hogy mióta adatstruktúrát alkalmazok, időnként "befagy" a kijelző, ott nem jelenít meg új adatot, és nem is lépteti le azt a motor, viszont a struktúrát helyes, új értékekkel tölti fel, mivel az előzőhöz hasonlóan itt is egy NRF24L01-es küldi a mért értékeket, és jelenítem meg egy TV-n ahol a kapott értékek változnak. Lehet, hogy itt memória túlcsordulás lép fel? Ezt hogyan tudnám ellenőrizni?
További hibám még, hogy a léptető motor 0-90 fok között jár, ami sokáig pontos, mivel mindig csak az adott kivezérlés eléréséhez szükséges számút lépi, de mégis van mikor "eltéved" 0-jelnél nincs lezárva, 90-nél nincs teljesen nyitva, esetleg túlnyit. Sajnos nem sikerült elkapnom még, hogy hol mehetett el a dolog, szögmérést nem tudok csinálni, és próbáltam volna egy mikrokapcsolót beépíteni, hogy ha a kivezérlés 0, akkor addig léptesse a motort, míg a végálláskapcsoló be nincs kapcsolva. ( ha nyomvatartottam a kapcsolót az hol magas, hol alacsony állapotot mutatott) Most olvasgattam utána, hogy lehet rossz logikai állapotból közelítettem meg, adtam a kapcsolóra +5V-ot, a kapcsolt szálat pedig egy digitális lábon olvastam ki, ha az magas volt akkor be volt kapcsolva, ha alacsony akkor nem. Fordítva kellett volna? Egyáltalán van értelme úgy? Miért téveszti el a jelet ha folyton be volt kapcsolva?
Arduino kód : http://indabox.hu/ofacz0
Köszönöm!
Bocsi a képek minőségéért, ilyet tud a telefonom... :-)