Centrální spínač

Odpovědět
grovik
Příspěvky: 2
Registrován: 08 čer 2019, 00:09
Reputation: 0

Centrální spínač

Příspěvek od grovik » 08 čer 2019, 00:16

Mám chodbu plnou kolébkových přepínačů.
Arduio a jeho digitální piny používám jako centrální spínač světel. Je tam relé a to sepne pokud se na některém z vypínačů změní stav.
Teoreticky to funguje a prakticky taky.
Problém je, že v jednom konkrétním stavu přepínače, dochází patrně k nějakému rozkmitu a přepínač se rozpojí.
Při restartu Arduina si přečtu všechny stavy a udělám z nich výchozí hodnotu. Takže pokud ho při zapnutí Arduina mám v opačném stavu tak se světlo pro změnu zhasíná.
Přiznám se že si nevím rady.
V kódu mám ošetřená jiskření při sepnutí a to funguje super. Tohle se, ale děje za nestejně dlouho dobu s nestejnou intenzitou. Někdy třeba za minutu probliknou světla v krátkých intervalech po sobě a jindy třeba 20 minut nic.

Debug na seriové lince ukáže přepnutí přepínače, ale s tím se nic neděje.
Nejhorší je ta nestejnost, kdybych v tom našel pravidlo, řekl bych že ten spínač prostě zajiskří a zkusil to nějak ošetřit, jenže tady je to naprosto ztracené v náhodnosti.

Měl by někdo nějaký nápad?

dreamer
Příspěvky: 5
Registrován: 02 srp 2017, 13:01
Reputation: 0

Re: Centrální spínač

Příspěvek od dreamer » 08 čer 2019, 05:46

Jestli máš použitý interní Pullup, zkusil bych použít externí a hodnotu klidně 1k nebo ještě menší.

grovik
Příspěvky: 2
Registrován: 08 čer 2019, 00:09
Reputation: 0

Re: Centrální spínač

Příspěvek od grovik » 08 čer 2019, 08:02

Díky, to mě napadlo, ale ještě jsem nerealizoval. Takže zkusím a budu dál hlásit stav :D.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Centrální spínač

Příspěvek od jankop » 08 čer 2019, 11:07

Je jedno pravidlo, které není pravidlem.
Všechny, i nepoužité vstupy procesoru by měly být ošetřeny
Můžeme jen předpokládat a doufat, že vstupy/výstupy, které v programu přímo neošetříme, skončí jako Input, s jakým takým pullupem (který v prostředí s vysokou úrovní rušení obvykle nedostačuje).
Nebudete možná věřit, ale z hlediska odolnosti k rušení je nejlepší všechny nepoužité vstup/výstupy prostě převést na výstupy.
Neošetřený vstup totiž pomalými přechody přes logické úrovně dokáže vyvolat naprosto nečekané stavy procesoru, neslučitelné s jeho správnou funkcí. Dobře si vzpomínám, jak jedno moje zařízení báječně fungovalo do té doby, než jsem ho vzal do ruky.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů