Začátečník arduino - pomoct s tlačítky - bazén (přesunuto)

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
dreamer
Příspěvky: 380
Registrován: 22 říj 2014, 02:00

#46 Příspěvek od dreamer »

Na první kouknutí se mi nezdá ten konec. Čerpadlo ti bude často spínat a vypínat. Dal bych tam nějakou hysterezi. Tedy nepoužít else ale 1 krok čerpadlo zapnout když bude teplota panelů větší než "" a 2 krok čerpadlo vypnout když bude nižší než třeba 30. Proč vypínat když je těsně pod 50? Spousta využitelného tepla se nevyužije. Možná se pletu ale u kolektorů na přitápění se využívá i teplotní spád 2-3 stupně.

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#47 Příspěvek od Atlan »

To nastavenie vystupnich pinou a puullup je zbytocne krkolomne cez For cyklus a neprehladne. Napis to bez toho cyklu.
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)

Uživatelský avatar
Rellik
Příspěvky: 610
Registrován: 17 úno 2017, 01:00
Bydliště: Staré Město (UH)

#48 Příspěvek od Rellik »

Diky za napady. Ten for, tam mam abych nemusel pokazde neco pripisovat kdyz neco pridam. Tak to pridam jen do pole a zmenim di kolika ma for pocitat. No nicmene ve vysledku to treba predelam. Mam na to celou zimu :)

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?

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#49 Příspěvek od Atlan »

Jed nastavujes outputs po jednotlivych prikazoch zaberie ti dajme tomu 3cykly. Cez for to zaberie 15. A hlavne forko je neprehladne. Tak pozries do zdrojaku a hned vies ze rele2 je vystup aj na ktorom pine je.

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.

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#50 Příspěvek od fero_b »

bod na premyslanie: ma vyznam vycitavat v hlavnej slucke neustale RTC, ked to staci raz sa sekundu?

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#51 Příspěvek od Atlan »

Rtc nema vystup s 1s impulzom tak ho pouzi na prerusenie.

Uživatelský avatar
Rellik
Příspěvky: 610
Registrován: 17 úno 2017, 01:00
Bydliště: Staré Město (UH)

#52 Příspěvek od Rellik »

Už jsem asi zjistil chybu u těch tlačítek. Měl jsem je sice v "setupu" ale navíc ještě vnořenou do funkce "displayTime()". Jinak po dnešním hraní jsem usoudil, že dosazovat požadované vstupy výstupy pomocí pole je nepřehledné. Musel jsem stále rolovat nahoru a dolů jak je pořadí v tom poli. Pak jsem si to napsal na papír. Nakonec to přepsal přímo v kódu a je to... Zatím to funguje podle plánu. Jen ještě musím doladit to snímání teploty. Ta se aktualizuje až po kliku na některé z tlačítek...
Nový kód:
https://create.arduino.cc/editor/Rellik ... 02/preview

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#53 Příspěvek od Atlan »

Senzor.set resolution co robi? Nezapisuje do eprom senzoru ake rozlisenie ma pouzit? Potom je to tam zbytocne.
Alebo udava bity pre vypocet teploty?

Vidis ze to je prehladnejsie

Uživatelský avatar
Rellik
Příspěvky: 610
Registrován: 17 úno 2017, 01:00
Bydliště: Staré Město (UH)

#54 Příspěvek od Rellik »

Senzor set.Resolution by měl řešit přesnost čidla -http://www.homautomation.org/2015/11/17 ... 1112-bits/

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

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#55 Příspěvek od Atlan »

Lenze rozlisenie staci nastavit raz, je ulozene v eeeprom cidla. Tak ze potom uz robi prevod stale podla eeprom tj 9bit, zbytocne to stale zapisujes do eprom cidla

Uživatelský avatar
Rellik
Příspěvky: 610
Registrován: 17 úno 2017, 01:00
Bydliště: Staré Město (UH)

#56 Příspěvek od Rellik »

Atlan: vyzkoušeno jen jedno definování - funguje Dík za radu.

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 :)

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#57 Příspěvek od Atlan »

Chlor sa davkuje minútu? Pri stlaceni rucneho davkovania nacitaj sekundy z rtc, uloz nacitanu hodnotu do premenej caschlor, daj delay 1s a pomracuj v programe. V hlavnej slucke daj podmienku ze ked sa sec z rtc rovnaju caschlor ma vypnut chlorovanie.
Samozrejme musit to urobit cez podmienku rucnechlorovanie aby to to neshadzovalo chlorovanie v automatike.

Uživatelský avatar
Rellik
Příspěvky: 610
Registrován: 17 úno 2017, 01:00
Bydliště: Staré Město (UH)

#58 Příspěvek od Rellik »

Mám to přes malé peristaltické čerpadlo a podle objemu bazénu mi vychází 2 dávky denně po cca 40s čerpání... + zapnutí hlavního čerpadla chvíli předem a jeho vypnutí po cca 10 minutách aby se to alespoň trochu promíchalo. To ruční přichlorování chci kvůli tomu, že budu bazén čistit a dopouštět novou vodu, tak abych tam ten chlor vyrovnal... ;) Jinak to RTC mě napadlo taky, jen musím vyzkoumat jak to nejlíp provést... :) Nejspíš budu vycházet z toho raního a večerního filtrování...

Uživatelský avatar
Rellik
Příspěvky: 610
Registrován: 17 úno 2017, 01:00
Bydliště: Staré Město (UH)

#59 Příspěvek od Rellik »

Kdyby se někdo chtěl podívat jak pokračuje můj začátečnický projekt, tak je k nahlédnutí na https://github.com/Rellik12/BazenBot :)

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ů"... :) Všude jsou verze z CD/DVD mechanik, ale mám k dispozici X různých servo motorků, tak na to nejspíš půjdu jinak...

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#60 Příspěvek od Atlan »

Tak to je cas aby si opustil arduino prostredie a presiel na Cko.
Na ploter pouzijes cncsheal z arduina a mas to hotove uz len sypat gcod.

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“