Zdravím,používam arduino pre akvárium 3x relé.Občas sa stane,že na chvýlku vypadne elektrika (1-2 sekundy alebo to možno robí napájací zdroj pre arduino).Keď sa tak stane program sa už nespustí,až nasledujúci deň.Čo sa s tým dá urobit?
Mna napadá len dať batériu na napájanie arduina cez diodu.V prípade výpadku to poťiahne baterka.
Pokračovanie programu
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Pokračovanie programu
- Přílohy
-
- Pre_3_rel_.ino
- (4.69 KiB) Staženo 130 x
Re: Pokračovanie programu
V první řadě bych řešil výpadky. Pokud relé spíná něco náročnějšího na odběr a máš špatně udělaný zdroj, tak pokles napětí může Arduino resetovat... Takže bych řešil zdroj, případně bych Arduino proti krátkým výpadkům zálohoval kondenzátorem.
Další věc bych řešil v programu. Používáš podmínky, kde zapínáš a vypínáš relé. Navíc dost zvláštním způsobem... Lepší by bylo udělat jednu podmínku tak, aby byla aktivní pouze pokud má být relé sepnutí.
Tedy kód :
nahraď kódem:
Stejně to zkus u dalších relé.
Další věc bych řešil v programu. Používáš podmínky, kde zapínáš a vypínáš relé. Navíc dost zvláštním způsobem... Lepší by bylo udělat jednu podmínku tak, aby byla aktivní pouze pokud má být relé sepnutí.
Tedy kód :
Kód: Vybrat vše
if (h == 17 && m == 44 && s <= 6) {
//tato podmínka zapíná relé od 17:44:00 do 17:44:06
digitalWrite(rele1, LOW); //rele zapne
}
if (h == 17 && m == 44 && s >= 30) { // 20 vteřin
//tato podmínka vypíná relé od 17:44:30 do 17:44:59
digitalWrite(rele1, HIGH); //rele vypne
}
Kód: Vybrat vše
if (h == 17 && m == 44 && s >= 0 && s <= 30) {
//rele sepne, pokud je 17 hodin, 44 minut a více než 0 sekund a méně než 30 sekund (včetně)
digitalWrite(rele1, LOW); //rele zapne
}
else{
digitalWrite(rele1, HIGH); //rele vypne
}
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů