Taster mit ADC einlesen

Gast #309132
Hi,

mir mangelt es an Pins an meinem ATmega16 und es sollen noch 4 Taster
ran...
Damit nicht jeder Taster einen Pin "frisst" hab ich mir eine
Schaltung überlegt(Anhang).

Somit habe ich vor, den gedrückten Taster über den ADC zu erkennen.

Was meint ihr dazu?


Daniel
Angehängte Dateien:
Gast
@Daniel
Gute Idee aber was passiert wenn S1 & S4 Gleichzeitig betätigt werden
?
@crazy horse
Also 1 mehr würd ich schon spendieren.
Es sei denn alle Taster ein ist dann dauer aus.

no bug ... feature :-)

Bleibt dann noch das problem mit dem Tasterprellen.....
( Tretmine )
Duck und weg ..........
Gast
Das Prellen der Tasten bekommt man mit ´nem R/C vor dem A/D-pin weg.
Gleichzeitiges Drücken kann man ausschließen, wenn man eine
Widerstandskette nimmt, alle Taster schalten nach Masse und werden mit
dem anderen Pin jeweils zwischen die Kette gelegt. Der dem oberen Ende
der Kette, also dem A/D-Anschluß, nächstgelegene gedrückte Taster
gewinnt, alle weiter unten angeordneten sind damit automatisch in dem
Moment ausgesperrt.
Gast
So können auch beliebige Kombinationen ausgelesen werden:
ich denke crazy horse meinte das auch so.



 +       T        T       T       T
        ---      ---     ---     ---          VCC
       -o o-    -o o-   -o o-   -o o-          +
     |  _ |  | _ | | _ | | _ |   _   |
      -|___|-  -|___|- -|___|- -|___|- -|___|-
     |                                |
    === 16k       8k     4k      2k   |   1k
    GND                               |
                                      |
                                      |
                                      |

                                      ADC




created by Andy´s ASCII-Circuit v1.22.310103 Beta www.tech-chat.de
Gast
Vielen Dank für Eure Hilfe...
Das hört sich gut an, doch leider kann ich der Zeichnung von phagsae
nicht ganz folgen...Die Taster verwirren mich ein wenig.
Seh ich das richtig, dass nach jedem Widerstand(also links davon)
einfach ein Taster auf Masse schaltet?
Gast
Jeder Taster brückt genau einen der Widerstände des Teilers (Die werden
nicht auf Masse gezogen, außer bei dem Taster ganz links!). Du kriegst
also auch beim Drücken mehrerer Taster für jede Kombination einen
anderen Spannungswert am ADC-Eingang.
Gast
Durch die Taster werden die Widerstände (mit unterschiedlichen Werten!)
gebrückt.
Du kannst die 16 Möglichkeiten mit einer Wertetabelle
(Excel...)ausprobieren...

So funktionieren auch Widerstandsdekaden...
Gast
> Das Prellen der Tasten bekommt man mit ´nem R/C vor dem A/D-pin
> weg.

Das bringt aber auch nicht viel, oder? Man muß trotzdem so oft messen,
bis sich der Wert stabilisiert hat.
Gast
Naja, wenigstens die vielen "auf-zu"-Preller vom Taster bekommt man so
gebügelt. Zunächst bekommt der A/D (bzw. das Programm) mit, daß sich der
Wert um einen Betrag x geändert hat. Bei der nächsten Abfrage (bspw. im
50ms Takt, je nach R/C) ist der Wert dann stabil. 2-3 Abfragen sind
sicher drin, um einen Widerstand sicher zu detektieren. Ein
Softwarefilter prüft die eingehenden Werte dann mit gewisser Toleranz
auf Plausibilität. Ohne R/C hingegen bekommt man im ungünstigsten Fall
etliche Millisekunden lang -zig Spannungssprünge um mehrere Volt, die
man überhaupt nicht vernünftig auswerten kann. Sicher kann man auch
hier im Programm warten, bis das "Rauschen" zur Ruhe gekommen ist,
aber das ist dann doch etwas unsicher, gerade bei älteren Tasten oder
in rauher Umgebung (Staub, Feuchtigkeit, Störfelder).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.