www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster entprellen


Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was wuerdet ihr mir empfehlen, das per Hardware oder per Software zu
realisieren? Hardware haette ich die benoetigte eh rumfliegen...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eleganter ist meiner Meinung nach die Variante per Software. In der
Codesammlung gibt es eine gute Variante von Peter Dannegger.

Alex

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach meinen Erfahrungen ist es viel eleganter beide Lösungen zu
kombinieren. Das heisst - eine Kapazität einsetzen und was
unkompliziertes mit Software zu schaffen. Ohne Kapazität geht's
manchmal mit den besten Software-Lösungen nicht.

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde eine reine Softwarelösung am besten.
Dazu wird ein Timer programmiert, der jede 50-100ms den Taster abfragt.

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenn die Taste oft genug prellt (ich hab schon so was erlebt), dann
arbeiten die ganz schön gemeinsam ;)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Aleksej

"Und wenn die Taste oft genug prellt"

Dann nimmt man eben die 4-fach-Entprellung (bulletproof), da ist
garantiert alles sauber, ganz ohne jede Hardware.


Peter

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der Kondensator wuerde zwischen Taster und uC gesetzt werden, oder?

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@peter dannegger:
Ich hab's schon was ähnliches gemacht - es wurde gewartet bis man 5mal
hintereinander eine 1 hatte, aber es hat nicht geholfen. Umd mit dem
Kondensator reichte schon eine wiederholte Abfrage vollkommend aus. Ich
glaube, das lohnt sich auf jeden Fall

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sammy
Ne, Kondensator steht zwischen der Taste und GND.

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Taster gegen + geschaltet, also zwischen + und dem Taster?
Welchen Wert fuer den Kondensator wuerdet ihr fuer die Reichelt Taster
benutzen?

Autor: twice_rock (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du die reichelt-taster für 12(oder warens 2?)cent meinst, musst du
bestimmt nen sehr großen kondensator nehmen. das sind die prellendsten
taster die ich je erlebt habe!
sorry, für diesen unkonstruktiven beitrag, aber ich hasse diese taster
wirklich!!!

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne diese Tasten nicht, aber bei den anderen sollen schon 100nF
ausreichend sein. Und auf keinen Fall Elkos, Keramik ist viel besser.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Aleksej,

"Ich hab's schon was ähnliches gemacht - es wurde gewartet bis man
5mal
hintereinander eine 1 hatte, aber es hat nicht geholfen."


Probier doch meinen Code erstmal aus, ehe Du da was vermutest.

Es reicht natürlich nicht aus, 5-mal den Pin abzufragen, das geht ja
viel zu fix (dauert nur wenige µs).

Der Trick ist eben der Timerinterrupt, d.h. zwischen jeder Abfrage muß
auch immer etwa 2ms ... 20ms Zeit vergehen.


@Sammy

Taster schaltet man üblicher Weise gegen GND, dann spart man den
Ziehwiderstand ein, da man den internen Pull-Up nehmen kann.


Peter

Autor: Flintstone (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo sammy!

Da ich selbst eine solche Schaltung gebaut habe, schicke ich dir einen
Link: http://www.seidat.de/elektronik_zeitschalter.htm
Die Software findest du auch in dieser Seite. Allerdings ist hier noch
ein Umschaltrelais zwischengeschaltet. Dieses mußt du beim umschreiben
der Software berücksichtigen. Das Relais hat auch stark geprellt,
deshalb habe ich es 100 mal abgefragt. zusätzlich habe ich einen
einfachen Filter aus Widerstand und Kondensator eingesetzt. Die
Schaltung funktioniert einwandfrei.

Guido

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@peter dannegger:
5mal hintereinander - das heisst doch nicht, dass ich es ohne Pausen
abgefragt habe. Ich habe die Pausen variiert. Und wenn mal 0 abgefragt
wurde, dann hab ich die Reihenfolge nochmal gestartet. Es hat geklappt,
aber ein mal pro Hundert Tastendrücke habe ich falsche Werte gekriegt.
Mit dem Kondensator klappt es bis zum heutigen Zeitpunkt einwandfrei.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Aleksej,

"ein mal pro Hundert Tastendrücke habe ich falsche Werte gekriegt"

Wenn Du mal Deinen Code posten könntest, vielleicht läßt sich dann ein
Fehler finden.

Manchmal wird nicht berücksichtigt, daß ein Taster auch beim Loslassen
prellen kann. Deshalb entprellt mein Code auch das Loslassen.


Peter

Autor: Matthias Friedrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ein Taster mach einer Software-Etprellung immer noch prellt, dann
stimmt etwas am Code nicht. Den Effekt, den man mit einem Kondensator
erreicht, kann man zu 100% auch in Software realisieren. Mit dem
Vorteil, dass man damit flexibler ist.

Matthias

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.