mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Taster Software Entprellung/Entstörung


Autor: Voltage (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Kann man bei einem AVR eine Entprellung und Entstörung wie folgt machen:

Bei einer steigenden Flanke wird ein Timer gestartet. Erst nach Ablauf 
von 100 ms wir der Wert akzeptiert.
Kann man damit auch die 50 Hz Einkopplung aus dem Netz eliminieren, die 
sonst 50 mal pro Sekunde triggert?

Autor: BlumentoPferde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein geht nicht, 100 mS sind 5x 50Hz, Timer und Netz laufen also 
synchron.

Autor: Voltage (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also müsste man 130 ms oder sowas nehmen?

Autor: Tüll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meines Wissens sind 10ms grosszügig genug für Entprellung - für die 
meisten Schalter / Taster reichen 1ms - 2ms (aber ohne Garantie).

@Blume
Wieso geht das nicht mit 100ms? Ist doch eine halbe Schwingung, sollte 
also optimal sein?

Autor: Tüll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Voltage

Wenn die Netzeinkopplung triggert solltest du das Problem wohl erst mal 
auf Hardwarebasis lösen (evt. Pull-up / Pull-down Widerstände?)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Voltage schrieb:
> Hallo.
>
> Kann man bei einem AVR eine Entprellung und Entstörung wie folgt machen:
>
> Bei einer steigenden Flanke wird ein Timer gestartet.

Nö, Unfug, der Timer wird bereits beim AVR-Start gestartet und liest 
alle etwa 4 bis 30 ms ein komplettes Byte mit bis zu 8 Tasten ein.

> Erst nach Ablauf
> von 100 ms wir der Wert akzeptiert.

Nööö, erst wenn 4 Runden hintereinander der Tastenzustand als (gegenüber 
gemerktem und als gültig erklärten Zustand) verändert erkannt wurde, 
erreicht der Tastendruckzähler seinen Endwert, was dazu führt, dass der 
neue Tastenzustand übernommen (gemerkt und für gültig erklärt) wird. Als 
Zugabe gibt es noch Flankenerkennung (Taste wurde irgendwann mal 
gedrückt, aber noch nicht bearbeitet) für bis zu 8 Tasten gleichzeitig 
und mit kleiner Erweiterung auch eine Repeatfunktion für ausgewählte 
Tasten.

Falls Dich das interessiert, dann suche mal in der Codesammlung nach 
"Bulletproof".

> Kann man damit auch die 50 Hz Einkopplung aus dem Netz eliminieren, die
> sonst 50 mal pro Sekunde triggert?

Man muss die Tasten ja nicht gerade mit exakt 50 Hz abtasten. Obwohl das 
bei mir (mit 20 ms) noch nie zu Fehlauslösungen geführt hat, obwohl ich 
nur die AVR-internen Pullup-Widerstände benutze. Wenn bei Dir das Netz 
einstreut, dann machst Du was Anderes falsch.

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BlumentoPferde schrieb:
> nein geht nicht, 100 mS sind 5x 50Hz,

Ich dachte immer, 100 Millisiemens sind 10 Ohm...

> Timer und Netz laufen also
> synchron.

...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Voltage schrieb:
> Bei einer steigenden Flanke wird ein Timer gestartet. Erst nach Ablauf
> von 100 ms wir der Wert akzeptiert.

Es hat sich bewährt, den Timer durchlaufen zu lassen, dann kann er noch 
andere Sachen machen.
Auch entprellt man bequemer Weise gleich den ganzen Port, da oftmals 
eine Taste nicht reicht.
Und wenn man auch das Loslassen entprellt, wird das noch sicherer und 
die Software einfacher (keine Fallunterscheidung).

Beitrag "Universelle Tastenabfrage"


Peter

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wohnst Du im Trafohäuschen? Wenn EMV trotz Pull-up-Widerstand ein 
Problem ist, schalte es so:

Taster gegen Masse, anderer Anschluß über 100R an 
Schmitt-Trigger-Eingang (HC11). Außerdem dort 1kR nach Vcc und 10kR mit 
10nF nach GND. Schmitt-Trigger-Ausgang an µC. Schluß ist mit Störungen! 
Leider ist dann auch die Stromaufnahme der Schaltung enorm: 5mA extra 
pro Taster.

Entprellung machste dann in Polling. Wenn bei z.B. 280Hz Abtastung 7 
hintereinanderliegende Zustände gleich sind, wird Deine Tastervariable 
gesetzt.

Gruß - Wolfgang

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Voltage schrieb:
> Kann man damit auch die 50 Hz Einkopplung aus dem Netz eliminieren, die
> sonst 50 mal pro Sekunde triggert?

Dann hast Du einen Kurzschluß vom Taster zur 230V-Leitung, den mußt Du 
auftrennen.

Die 50Hz sind sinus, die können sich nicht einkoppeln.
Was da stört, sind Schaltvorgänge, die erzeugen HF.


Peter

Autor: Tüll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang, nach dem Schmitt Trigger ist doch keine Entprellung mehr 
nötig?

Autor: BlumentoPferde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes Lux schrieb:
> BlumentoPferde schrieb:
>> nein geht nicht, 100 mS sind 5x 50Hz,
>
> Ich dachte immer, 100 Millisiemens sind 10 Ohm...
>
>> Timer und Netz laufen also
>> synchron.
>
> ...

komm Ich jetzt ins Fernsehen? :-)

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip nein, aber...

Wer will eigentlich garantieren, daß es dann keinesfalls mehr prellen 
kann? Sieh eine Entprellung in Software vor (kleine Kodierübung) und 
freue Dich dann, falls sie doch nicht in Aktion treten müssen sollte. 
Der Speicherverbrauch hält sich in Grenzen und auch die Prozessorlast 
ist zu vernachlässigen.

Gruß - Wolfgang

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.