Wie zrverlässig und schnell ist die Verwendung des ADC zum Auswerten von Tastern? Ein paar Taster sollen an einem (1) ADC-Eingang angeschlossen werden - via Spannungsteilerschaltung, jeder brückt einen anderen Widerstand aus der Reihe 1K, 2K, 4K, 8K, .... Kann man sich darauf verlassen, das das gut geht und Tastendrücke zuverlässig, immer ohne Fehler und ohne merkbare Verzögerung erfasst werden (so schnell drücken, wie man kann)?
Tja, wenn man nicht genug freie Eingänge für alle Taster hat, sollte das auch so (schnell und zuverlässig) funktionieren.
...aber nur, wenn man mehrere Wandlungen durchführt und Ausreisser aussondert und eine Mehrheitsentscheidung durchführt. Denn: 1. Die Taster prellen auch am ADC, logisch 2. Durchläuft die Spannung beim Betätigen eines "höherwertigen" Tasters auch die Spannungen von "niederwertigen" Tastern. Ein ungünstiger Moment zur Abtastung und schon hat man eine falsche Taste interpretiert. Ein zusätzlicher C zur "Glättung" könnte hier sogar negative Auswirkungen haben!
> Wie zrverlässig und schnell ist die Verwendung des ADC zum Auswerten > von Tastern? Das hängt davon ab, was für einen ADC du verwenden und wieviele Tasten du damit einlesen möchtest. Wenn du nur Zweierpotenzen verwendest, kannst du nachher auch jede beliebige Kombination von gleichzeitig gedrückten Tasten erkenne, dafür ist die Gesamtanzahl an Tasten stärker eingeschränkt. > Kann man sich darauf verlassen, das das gut geht und Tastendrücke > zuverlässig, immer ohne Fehler und ohne merkbare Verzögerung erfasst > werden (so schnell drücken, wie man kann)? Du mußt natürlich auch hier eine Entprellung machen. Prinzipiell geht das normalerweise schon gehen.
Ja, das geht. Entprellen mit Kondensator geht natürlich nicht, da dann alle hochohmigeren Tasten nacheinander als gedrückt erscheinen (Aufladekennlinie). Aber meine bewährte 4-fach Entprellung geht super: Beitrag "Tastenmatrix auslesen über nur 2 Leitungen" Peter
Dietmar E wrote: > ... ohne merkbare Verzögerung erfasst > werden (so schnell drücken, wie man kann)? Wenn Du merkbare Verzögerungen willst, mußt Du den AVR schon extrem runter takten (<32kHz) oder riesige Delays einbauen. Peter
Viele Consumerimportgeraete verwenden ADC Tasteneingaben als Regel. Schau mal in Deine Geraete rein und Du wirst erstaunt feststellen dass diese Art der Tasteneingabe eine Standardloesung darstellt. Und das lustige daran ist auch, dass man 5% Widerstandswerte bequem verwenden kann und leicht eine 10% Unterteilung der ADC Werte erzielen kann. Also, ohne Bange!;-) 10 Tasten per Eingang sind bequem durchfuerbar. Gerhard
> 10 Tasten per Eingang sind bequem durchfuerbar
Mir reichen erst mal vier. Darf man bei dieser relativ unkritischen
Aufgabe für den ADC davon ausgehen, dass Verwendung der anderen
PortA-Pins für Ausgabe (konkret Software-SPI) nicht stört?
Stoerungen durch andere digitale Funktion sollten normalerweise nicht auftreten. Bei meinen Geraeten laeuft der ADC durch Interrupt im Hintergrund so dass die Analogwerte aller Kanaele immer auf den neuesten Stand bleiben. Bei einem PIC der mit 16MHZ getaktet wird, braucht eine AD Konvertierung weniger als 80us. Je nach dem wie viele Analoginputs aktiv sind, lasssen sich die AD Werte bequem durch eine Mittelwertbildung noch beruhigen. Meistens genuegt bei mir eine N=2-8 um absolut stabile AD Werte zu messen. Man muss natuerlich schon aufpassen dass die Grundregeln der Analogwelt einigermassen eingehalten werden. Bei Brettaufbauten kann es da schon Probleme geben. Auf jeden Fall ist eine saubere Tastenerkennung kein Problem. Versuch es auf alle Faelle. Es ist ja oft sehr angenehm nur zwei leitungen fuer alle Tastenfunktion zu brauchen. Die POWER-ON Taste muss man allerdings normalerweise konventionell implementieren. Ich verwende immer 10K zwischen VDD und dem Analogeingang. Mit einem kleinen 0.1uF zwischen VDD und dem Analogeingang lassen sich etwaige Stoerungen vermeiden. Sieh Dir mal diese Appnotes an: http://www.st.com/stonline/products/literature/an/5704.pdf http://www.edn.com/contents/images/2499di.pdf Gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.