forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Odstranění zákmitů tlačitek

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Jiné mikrokontroléry, procesory, hradla
 
M4r1hu4n3
Profesionál
Profesionál


Založen: 17.3.2008
Příspěvky: 69

PříspěvekZaslal: 17 leden 2010, 16:01    Předmět: Odstranění zákmitů tlačitek Citovat

Zdravím, pustil jsem se do jednoho projektu a potřeboval bych vyřešit problém se zákmity tlačítek. Zatím jsem to "vyřešil" spožděním o 30ms ale toto řešení není košér. Hledal jsem na internetu ale nic co bych pochopil jsem nenašel. Programuju to ve Wired což je podobný Céčku, ale bude mi stačit když mi někdo poradí jak to softwarově ošetřit, když to pochopím tak už si program sesmolím sám. Takže sem hrňte všemožnou pochopitlenou teorii jak na to. Díky.

Arrow administrator: přesunuto z "Elektronika s mikrokontroléry, procesory"
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Petr
Profesionál
Profesionál


Založen: 21.2.2008
Příspěvky: 645
Bydliště: Praha západ Hostivice

PříspěvekZaslal: 17 leden 2010, 18:16    Předmět: Citovat

V některé knížce bylo popsáno několik příkladů, třeba ti nějaký bude vyhovovat. Myslím že to byla kniha Učebnice programování PIC, ale nejsem si jistý.

Naposledy upravil Petr dne 17 leden 2010, 18:26, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1494

PříspěvekZaslal: 17 leden 2010, 18:25    Předmět: Citovat

100ms na stlacenie je nezmysel pre tlacitka sluziace ako mala klavesnicka napriklad pri display. Ak totizto tlacitka reaguju pomalsie ako za 30-40ms, uz ma obsluha pocit, ze nefunguju/maju zly kontakt a tak ma tendenciu tlacitka prilis zatlacat.

Algoritmus casovej filtracie stlacenia tlacitka:
Tlacitko si mozes skenovat kazdych 5ms. Ak tri vzorky po sebe zodpovedaju stlaceniu tlacitka, interne si nastav premennu - stlacene tlacitko = true. Ak 10-20 vzoriek po sebe zodpoveda pusteniu tlacitka, interne si nastav premennu - stlacene tlacitko = false.

Inak to aj uplne riesi i kondenzator 100nF-10nF paralelne k tlacitku, ak je pullpu odpor okolo 2k2-10k.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
M4r1hu4n3
Profesionál
Profesionál


Založen: 17.3.2008
Příspěvky: 69

PříspěvekZaslal: 17 leden 2010, 19:29    Předmět: Citovat

V tý knížce jsem nic co by mi pomohlo nenašel Petře.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Petr
Profesionál
Profesionál


Založen: 21.2.2008
Příspěvky: 645
Bydliště: Praha západ Hostivice

PříspěvekZaslal: 17 leden 2010, 20:38    Předmět: Citovat

Opravuji, je to kniha "Komunikace mikrokontroléru s okolím 1" strana 18.
2.1 Způsoby obsluhy klávesnice
2.1.1 Ošetření zakmitávání kontaktů
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Atlan
Profesionál
Profesionál


Založen: 4.2.2009
Příspěvky: 950

PříspěvekZaslal: 18 leden 2010, 0:01    Předmět: Citovat

ak mas pouzite pullup externy alebo interny tak je moznost pouzit kondik paralelne ktlacitku a nemusis to riesit softverom
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
M4r1hu4n3
Profesionál
Profesionál


Založen: 17.3.2008
Příspěvky: 69

PříspěvekZaslal: 19 leden 2010, 10:31    Předmět: Citovat

zatím tam mám vytvořeno toto, ale stále mi to nepracuje úplně podle představ:

kód:
  val = digitalRead(buttonPin3);
delay(5);
  bounceCheck = digitalRead(buttonPin3);
if(val == bounceCheck){
  delay(5);
  bounceCheck2 = digitalRead(buttonPin3);
   if(bounceCheck == bounceCheck2){
    if (val == HIGH) {
    buttonState3 = HIGH;
  } else {
    buttonState3 = LOW;
  }
}
}


tím tlačítkem si vlastně nastavuju hodnotu proměné pro switch, a stane se že přejedu přes nějakou hodnotu...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
M4r1hu4n3
Profesionál
Profesionál


Založen: 17.3.2008
Příspěvky: 69

PříspěvekZaslal: 08 únor 2010, 21:28    Předmět: Citovat

A co použít klasické zapojení se schmittoým klopným obvodem? Nebo mám radši použít ten kondenzátor paralelně na tlačíko? Jaké je riziko poškození nebo co by se stalo kdyby tam ten kondenzátor byl a nebylo to v pullupu? Ten schmittuv klopný obvod se mi na to více líbí, ale nevím, nikde jsem snad neviděl takové řešení.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Technik
Anonymní





PříspěvekZaslal: 08 únor 2010, 23:08    Předmět: Re: Odstranění zákmitů tlačitek Citovat

M4r1hu4n3 napsal:
Zdravím, pustil jsem se do jednoho projektu a potřeboval bych vyřešit problém se zákmity tlačítek.... Takže sem hrňte všemožnou pochopitlenou teorii jak na to. Díky.


Tak Ti jednu teorii sem nahrnu:
Nezmáčnuté tlačítko nemůže mít zákmity, takže bude mít spolehlivou např. log.1 (při pull up do +Ucc). Jestliže je zmačknuto, zákmity způsobí náhodné střídání 0 a 1. Pokud budeš číst stav tlačítek v pravidelných intervalech a provedeš mezi např. 20 po sobě jdoucími vzorky log. AND, získáš vyfiltrovaný stav tlačítek. V praxi postačí vzorkovat 100x/sek, a z 5 vzorků dělat AND.
Návrat nahoru
 

 
Atlan
Profesionál
Profesionál


Založen: 4.2.2009
Příspěvky: 950

PříspěvekZaslal: 09 únor 2010, 8:23    Předmět: Citovat

KEd tam nebude pullup tak to bude fungovata zle ale skor vobec.

Pullup- vecinou je myslenu zdvihaci odpor pripojeny na + pol.
ALe existuje aj moznost ak tlacitko spina + pol tak ten odpor musi ist na zem...a intreny pullup vypnut.

Robi sa to koli definovaniu stavu pri rozopnutom tlacidle.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
cern.tom
Účastník
Účastník


Založen: 15.8.2010
Příspěvky: 10
Bydliště: Česká Lípa

PříspěvekZaslal: 20 září 2010, 0:02    Předmět: Pull-up Citovat

Chtěl jsem se zeptat jakou hodnotu pull-up rezistoru používáte? Programuju teď Atmegu88, tak jsem se chtěl zeptat jestli stačí použít vnitřní pull-up odpory? Nebo oba dohromady (vnitří i přidaný vnější?)? Question

Díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Jiné mikrokontroléry, procesory, hradla Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)