Začátečník arduino - pomoct s tlačítky - bazén (přesunuto)
Moderátor: Moderátoři
Rozlisenie cidiel na 9 staci nastavit raz (nastavenie je ulozene v eeprom)
Zase tam vidim ovladanie rele je ulozene v poli a riesene cez pole.
Nepouzivaj to na vstupne piny a rele ak to nieje nutne pouzi len
Digital write (rele2,High)
Jinak je trochu problem s tlacitkem "Zapnuto". Nekdy ho musim podrzet aby se to zaplo. Jinak jen vystup ns rele problikne a zustane vypnuty. Pritom, ale na displeji je zobrazeno "Zapnuto". Daval sem to za vinu fci delay(), ale tu tam nikde nemam...
Nenapada nekoho proc to dela?
Ten problem zo zapnutim bude asi v funkcii teplota.
Neviem ako je riesene cidlo ds. Ale standartne sa spusti prevod v cidle ten trva nejaky ca(vid datashee) a az potom sa moze nacitat teplota.
Tj dve funkcie. Jedna start merania a druha nacitanie nameranej hodnoty. Prever to ako to ma arduino.
Podla mna sa ti vyhodnoti podmienka pre obsluhu rele2 v funkcii teplota a vypne ti rele2.
Nový kód:
https://create.arduino.cc/editor/Rellik ... 02/preview
Jinak i po předchozí úpravě programu to nedrželo stav. Pak jsem zjistil, že se mezi sebou bijí dvě funkce, kdy v jedné se čerpadlo zapíná a v druhé naopak dle podmínek vypíná. To jsem vyřešil, že pokud je jedna funkce v daném časovém úseku (večerní a ranní filtrace), tak nejede "denní" funkce ohřevu vody. Teď ještě musím odladit to dávkování chloru, které trochu zlobí.. Nechce se zapnout za daných podmínek - kód řádek 201 (216). Pokud by někdo měl nějaké elegantnější řešení budu rád...
https://create.arduino.cc/editor/Rellik ... 02/preview
Jinak jsem konečně vyřešil to raní a večerní časování filtrace. Chtělo to popřidávat pár závorek a ráno i večer je v jednom ifu...
No nicméně mě pro změnu zlobí "denní" program, který jede mezi těmi filtracemi. Konkrétně se mi nechce sepnout relé filtru. A to na to už hledím asi 2 hodiny a nevím kde se to neguje...
https://create.arduino.cc/editor/Rellik ... d45173d202
funkce teploty - řádek 249
v programu se volá na řádku 223
výstup na ventil se otevře správně (266), ale relé předním už nee
EDIT:
Tak už vím co to relé blokuje. Je to řádek 199 a ten řádek 222 (pokud ho povolím. Teď budu dumat jak to omezit... :-/
EDIT/EDIT:
vyřešeno.
Řádek 199 ošetřen podmínkou, která kontroluje jestli není aktivní automatický režim:
Kód: Vybrat vše
if(!filtraceAuto){
digitalWrite(releFiltr, LOW);
}a ten další řádek odmazán, protože pak už se to řídí výstupem z funkce na hlídání teplot, takže tam to bylo zbytečné...
Zatím tedy výsledný kód je odkazu výše...
Teď max budu dolaďovat kód pro lepší přehlednost. Jo a je tam navíc ošetření tlačítek proti delšímu stisku...
Max ještě pořeším jinak "ruční" dávkování chloru, které je teď pomocí delay(), čímž se vše ostatní zastaví, což není pěkné, že to cca 1 minutu nebude počítat ani čas...
Takže díky všem zúčastněným za všechny rady, které mi dost pomohly do začátku. Teď už mi to nepřijde tak složité jako když jsem to zapnul poprvé a ťukal tam blikání diod...
Jinak co se týká ceny, jak se řešilo v některém tématu, že se nevejdu s tím co chci do 1000,- jak jsem říkal, tak jsem se vlezl do cca 600,-
Deska UNO - 160,-
DS3231 - 45,-
LCD 2x16 - 90,-
Releshield - 114,-
2x DS18B20 - 90
Elektroventil mám zdarma z práce a těch pár tlačítek, odporů a LED diod se vejde cca do 50,- (jinak jsou šuplíkovky)...
Čas u toho strávený nepočítám
Samozrejme musit to urobit cez podmienku rucnechlorovanie aby to to neshadzovalo chlorovanie v automatike.
Jelikož jsem se s tím programováním celkem zžil (nemám problém se učit něco nového i v mém věku), tak plánuju další projekt a to CNC plotter na kreslení "ťišťáků"...