Stránka 1 z 1

Centrální spínač

Napsal: 08 čer 2019, 00:16
od grovik
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?

Re: Centrální spínač

Napsal: 08 čer 2019, 05:46
od dreamer
Jestli máš použitý interní Pullup, zkusil bych použít externí a hodnotu klidně 1k nebo ještě menší.

Re: Centrální spínač

Napsal: 08 čer 2019, 08:02
od grovik
Díky, to mě napadlo, ale ještě jsem nerealizoval. Takže zkusím a budu dál hlásit stav :D.

Re: Centrální spínač

Napsal: 08 čer 2019, 11:07
od jankop
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.