Zakmitávání tlačítek

Odpovědět
AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Zakmitávání tlačítek

Příspěvek od AstroMiK » 22 říj 2021, 19:38

Musím se s vámi podělit o zkušenost s těmito tlačítky.
https://www.ebay.com/itm/284340873784

Koupil jsem jich balík (dohromady asi 20 kusů). Ze začátku byly v pohodě, ale po čase začaly strašně zakmitávat.
Nejdřív jsem to zkoušel ošetřit v programu (vyhodnocuji tam krátký a dlouhý stisk).
Vždycky to nějakou dobu fungovalo, ale jak se stav tlačítek postupem času zhoršoval, tak už to programově odfiltovat nejde.
Zákmity se teď objevují dokonce i při trvale stisknutých tlačítkách.
screen01.gif



Níže přikládám ukázková videa.
Osciloskop je připojený přímo na vývody tlačítka. Zapojené je to tím nejobyčejnějším způsobem.
Tlačítko spíná proti GND a přes vnitřní Pull-Up na vstupním pinu je přitažené na 3,3V napájení.

Určitě to není žádné rušení.
Když místo toho tlačítka dám takové to obyčejné 4-pinové tlačítko s vyviklanou osičkou
(třeba tohle: https://dratek.cz/arduino/919-tlacitko.html ), jsou hrany krásně ostré.

Dočasně - než seženu nějaká jiná tlačítka do panelu - jsem přímo na kontakty nalepil kondenzátory 220nF.
Tím se zakmitávání výrazně snížilo, ale pořád tam je vidět.

Videa:
Zákmity:
https://youtu.be/N2J7MS4Ump0


Porovnání zákmitů dvou různých paralelně zapojených tlačítek:
https://youtu.be/aDpCBhugQmo


Zákmity po přemostění kontaktů keramickými kondenzátory:
https://youtu.be/Lj9fnpjINS4


Přemostění kontaktů kondenzátory:
kondy.jpg

Uživatelský avatar
jede_robot
Příspěvky: 53
Registrován: 15 led 2020, 21:18
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od jede_robot » 23 říj 2021, 14:41

Mechanický kontakt potřebuje pro správnou činnost, aby jím protékal nějaký proud. Použij jako pull-up místo toho interního rezistor 1k a mělo by se to výrazně zlepšit. Případně ten rezistor můžeš i dál zmenšovat, pokud dá zdroj dostatečný proud. Já běžně používám 220R.
Kde je potřeba spolehlivost, používám tenhle fígl:
Optocoupler debounce.GIF
Optocoupler debounce.GIF (5.7 KiB) Zobrazeno 5532 x
Optokoppler je záměrně ten nejobyčejnější (nejhorší) a jeho pomalost paradoxně odstraní ty nejhorší zákmity a ještě celkem slušně filtruje vf rušení.
jrt
jederobot.cz, robodoupe.cz

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Zakmitávání tlačítek

Příspěvek od pavel1tu » 23 říj 2021, 19:32

Také jsem míval problémy,
teď kupuji "kvalitnější" mikrospínače, ty napájím na desku,
mechanickou část (vlastní tlačítko) pak řeším buď nákupem nějakého "kluboučku" nebo 3D tiskem, odolné vodě řeším "foliovými" tlačítky/klávesnicí z ALI na zakázku včetně potisku.

Tam kde kvůli spotřebě nelze toto řešit proudem používám jazýčkové kontakty, mám ještě stovky těch ze ZPA co mají kontakty opravdu pozlacené. Ty naopak jsou jen na malé proudy, ale jsou "věčné".
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od Caster » 23 říj 2021, 20:48

Mohlo by ti pomoci nějaký tip v článku "What is Switch Bouncing and How to prevent it using Debounce Circuit".

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Zakmitávání tlačítek

Příspěvek od pavel1tu » 23 říj 2021, 21:50

Tam kde je málo místa jsem vyzkoušel 4MAX6816/MAX6817/MAX6818
zatím jen jednou, je to dražší, ale pokud tam mám 6-8 tlačítek, je to obrovská úspora místa a opravdu to funguje
ale proti zde popisovanému problému to asi nepomůže, co jsem měřil potřebuje to ustálený signál alespoň 18-25ms, pak to teprve překlopí.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od AstroMiK » 24 říj 2021, 08:09

Díky za reakce.

Takové to běžné zakmitávání při přechodech mezi stisknuto/uvolněno jsem měl zvládnuté dobře.
Dokonce i když se začaly objevovat krátké výpadky ve stisknutém stavu, tak jsem je dokázal filtrovat.
Jak ale můžete vidět na tom prvním obrázku z osciloskopu - ta šílenost, co z toho lezla, už byla softwérově nezvládnutelná.

V tomhle případě je to opravdu nějaký problém přímo v tlačítkách.
Možná tam ty kontakty časem nějak zoxidovaly.

Zkusím sehnat nějaká jiná tlačítka.
Je trochu problém, že jsem krabičku i plošňák navrhoval tak, aby tam tyhle kulatý tlačítka přesně pasovaly.
Nějaké dobastlování optočlenů se tam už nevejde.
Navíc je to bateriově napájené, takže bych tam nerad přidával další zátěže.

Můžu ještě zkusit doplnit k tlačítkům ty menší Pull-Upy.
Prozatím se ale situace výrazně zlepšila těmi 220nF kondenzátory přes kontakty.

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od Caster » 24 říj 2021, 12:04

A co třeba zkusit ty tlačítka rozebrat a vyčistit Kontaktolem ;) .

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od gilhad » 24 říj 2021, 16:09

Jak koukám na tu šílenost, tak rozepnuté je to celkem spolehlivě rozepnuté, ale stisknuté to podezřele kmitá.

Co takhle při první detekci stisknutí to prohlásit za stisknuté a nějakou dobu to ignorovat (třeba 1/10 sec, nikdo to asi nedokáže rozumně stisknout a pustit během tak krátké doby), pak se chvíli (třeba zase 0.1sec) v cyklu dívat, jestli jestli je to 0 nebo 1 - pokud to je po celou dobu 1, tak je to asi puštěné, pokud se tam vyskytno aspoň jedna 0, tak to kmitá a tedy je to ještě stisknuté (a ten cyklus jde okamžitě ukončit, tlačítko brát jako stisknuté a ignorovat ho (nečíst) a pokračovat zase za nějakou dobu, třeba opět 0.1s)

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od AstroMiK » 24 říj 2021, 17:55

Caster:
Kontaktol nemám, ale jedno z těch tlačítek jsem rozebral a obrousil kontakty - byla to taková zašlá mosaz. Po obroušení krásně žlutá.
Když jsem ale mechanizmus lisoval zpátky, něco se tam zkřížilo, zakřupalo a od té doby ten kontakt nespíná vůbec.

Nevadí.

Dal jsem tam jiné tlačítko (ze stejné dodávky) a to šlape úplně skvěle.
Žádné zákmity (kromě takových těch obyčejných přechodových, které se dají bez problému odfiltrovat programově).
Uvidím, jak se to bude vyvíjet časem.



Gilgad:
Jestli ten tvůj popis dobře chápu, tak takhle nějak to mám udělané.

Problém bude asi v tom jak píšeš: "... pokud to je po celou dobu 1, tak je to asi puštěné ..."

Při tomhle skoro analogovém šumu se občas stávalo, že se to testování stavu trefovalo právě do těch HIGH úrovní.
A když jich to trefilo víc za sebou, tak to vyhodnotilo jako předčasné uvolnění tlačítka = krátký stisk.

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Zakmitávání tlačítek

Příspěvek od ondraN » 25 říj 2021, 07:21

Tenhle problém je dán materiálem kontaktů spínače. Pokud je použitý měkčí materiál, tak se v místě styku odírá. Ten odřený materiál skvěle oxiduje, díky zvětšenému povrchu a vytvoří na kontaktech "polovodivý" povlak. Ten je problematický hlavně při spínání nízkých napětí a proudů.

Odpovědět

Kdo je online

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