Osetreni zakmitu tlacitka

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Beranek
Příspěvky: 22
Registrován: 28 úno 2013, 01:00

Osetreni zakmitu tlacitka

#1 Příspěvek od Beranek »

Ahoj, tak jsem tu zase. Tentokrat resim osetreni zakmitu tlacitka. Na tlacitku detekuji obe hrany. SW cekani mi moc nevyhovuje tak jsem chtel vymyslet neco HW.

Popis problemu: Snazim se rozeznat kratky a dlouhy stisk. Pokud nastavim SW osetreni zakmitu na 100ms a k pusteni tlacitka dojde behem tech 100ms, mikrokontroler zjisti, ze bylo tlacitko stisknuto, ale ze bylo pusteno uz nepostrehne. A tim padem si mysli, ze je tl. stale drzeno...pote si mysli, ze uzivatel provadi dlouhy stisk.

Moje reseni: Navrhl jsem si takovy obvod, ale jsem amater (spise programator nez el.). Tak bych chtel znat nejake nazory. Dekuji za ne.

Odkaz na obvod

Odpory u OZ jsem zvolil tak velke, aby mi neovlivnovaly dobu vyijeni kondenzatoru. Pokud je to spatne, napiste ;).

EDIT:
+soubor
Přílohy
obvod.JPG
(20.54 KiB) Staženo 66 x
Naposledy upravil(a) Beranek dne 18 bře 2013, 21:06, celkem upraveno 1 x.

Uživatelský avatar
procesor
Příspěvky: 5284
Registrován: 02 říj 2009, 02:00
Bydliště: PO

#2 Příspěvek od procesor »

Čo nám to vnucuješ inštalovať!
Ten tvoj program naozaj myslí?

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#3 Příspěvek od ZdenekHQ »

S těma 100ms si děláš legraci. Na zákmity bohatě stačí 3 čtení po 1ms (já používám dokonce jen 200us) a v případě shody se to bere jako výsledek, jinak se čte znovu. Zjistit potom krátký a dlouhý stisk není žádný problém, stejně musíš reagovat až na puštění tlačítka, tak jen měříš čas.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#4 Příspěvek od Andrea »

ZdenekHQ píše:S těma 100ms si děláš legraci. Na zákmity bohatě stačí 3 čtení po 1ms (já používám dokonce jen 200us)
No, takoví experti jako ty asi dělají sw do mobilů. Po dvou letech se na něm nedalo psát, protože co stisk, to vygenerovaný dvoj a více stisk. Já používám konzervativních 10ms, to je člověkem nepostřehnutelný čas a je to bomben fest i pro hodně jetý tlačítka.

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#5 Příspěvek od WLAB »

Vzdyt by snad stacilo po te, co zjistim zmenu, zacit pocitat cas treba po 1ms a s kazdym vzorkem testovat vstup. Pokud nastane zmena zpet, tak citac casu resetovat. Pokud citac casu presahne protizakmitovou dobu Tfilt, prohlasi se stisk za validni a pokud presahne hodnotu definovanou pro dlouhy stisk, prohlasi se za dlouhy...
de omnibus dubitandum est

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#6 Příspěvek od WLAB »

Ja pouzivam 10-50 ms podle povahy tlacitka.
de omnibus dubitandum est

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#7 Příspěvek od ZdenekHQ »

Andrea píše:No, takoví experti jako ty asi dělají sw do mobilů. Po dvou letech se na něm nedalo psát, protože co stisk, to vygenerovaný dvoj a více stisk. Já používám konzervativních 10ms, to je člověkem nepostřehnutelný čas a je to bomben fest i pro hodně jetý tlačítka.
Dej si tam klidně hodinu, já používám klasický mikrospínače a když přičtu zpoždění díky obsluze funkce, v životě se mě dvojstisk nepovedl a to už ten algoritmus včetně zkušebních tlačítek používám asi 5 let. Původně jsem tam měl víc, ale je to zbytečný. Tři čtení po 200us a jakákoliv změna zavolá algoritmus opět od začátku, takže si to tlačítko klidně může kmitat půl hodiny.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#8 Příspěvek od Andrea »

Asi máš dost omezený okruh. Už jsem se setkala s tlačítkama, u kterých 5ms zákmit jako nic. Tam i těch 10ms bylo málo.

Uživatelský avatar
Beranek
Příspěvky: 22
Registrován: 28 úno 2013, 01:00

#9 Příspěvek od Beranek »

100ms mam proto, ze pri mensich casech tam mam zakmity. Ja nectu stav vstupu, o to se stara kod trochu blize HW nez jsem ja. Ja pouze zachytavam udalosti (kdyz byla detekovana vzestupna nebo sestupna hrana). Plus si muzu nastavit jak dlouho se ma cekat aby se clovek vyhnul zakmitum.

Nic vam nenutim instalovat. Je to normalni JAVA. Muzu sem dat i obrazek no. Ale kdyz jsem se tu ptal naposled, byla mi taky odpoved zaslana v teto podobe. Tak se snad nic tak tragickeho nestalo.

JInak to vase SW reseni zkusim muzu. Po prvni hrane nastartovat casovac a udelat si par vzorku po urcitem case zda jsou stejne. Proc ne no.

A nejaky komentar k obvodu nebude?

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#10 Příspěvek od WLAB »

Tak ta vrstva "blize HW" je proste nevhodna, protoze neumi detekovat vhodne typy udalosti. Honit to nekde vyse, zvlaste, kdyz ty udalosti nejsou oznaceny timestampama je pakarna...
Naposledy upravil(a) WLAB dne 18 bře 2013, 21:20, celkem upraveno 1 x.
de omnibus dubitandum est

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#11 Příspěvek od WLAB »

Komentar k obvodu je ten, ze bys to snad radeji mel udelat softwarove.......
Cekal bych v tom obvodu nejaky monostabilni KO, hysterezi apod.... ale tohle?
de omnibus dubitandum est

Uživatelský avatar
Beranek
Příspěvky: 22
Registrován: 28 úno 2013, 01:00

#12 Příspěvek od Beranek »

timestamp dostavam. Muzu to zkusit odecitat ty dva casy po sobe no. Ale rikal jsem si, ze kdo vi zda to bude fungovat. Zda nebude stejny vysledek jako u toho jejich osetreni. Nevim jakto, ze tam mam nekdy dvoukliky i po takove dobe, kdyz tu kazdy pise ze po par ms je to pryc...

"ale tohle?"..no nekde jsem cetl, ze to lze resit kondikem. Ale jen kondik si myslim nestaci...kdyz chytate obe hrany.

Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 02:00
Bydliště: Praha

#13 Příspěvek od WLAB »

No, "kondik" tam musi byt kazdopadne... otazka je co k nemu... co tu ma tedy dle konstrukcniho zameru resit ten OZ?
Ja bych to resil ve FW, bude-li to trochu mozne, uz jen pro variabilitu.
de omnibus dubitandum est

Uživatelský avatar
Beranek
Příspěvky: 22
Registrován: 28 úno 2013, 01:00

#14 Příspěvek od Beranek »

No OZ tam mam proto, ze ja chci merit napeti na kondiku..Abych osetril oba druhy zakmitu. Ale pin mikrokontroleru mi muze merit jen napeti vuci zemi. Tak jsem to udelal pres OZ. Ten mi veme jen napeti na kondiku a to pak uz je stahnute vuci zemi...ale jak rikam. Jsem hodne velky amater, takze mozna je to blbost nevim.

Kdyz nastavim filtr zakmitu(ten co tam uz je udelany) na 50ms, tak mam kazdy druhy stisk 2x :D Osciloskop nemam abych se na to podival poradne.

Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#15 Příspěvek od forbidden »

Je to nějaký komplikovaný, já osobně považuju zákmity za odezněný po 20-ti ms, pak teprv řeším krátkej, nebo dlouhej stisk. Funguje to na mikrospínače i obyčejný spínače, vše čistě software.

Odpovědět

Zpět na „Poradna“