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
durchaus üblich und funktioniert auch problemlos. Kannst du noch vereinfachen, Widerstandskette. Kommt mit insgesamt 4 Widerständen aus.
Kann ich die Spannungsteiler also weglassen? Wo fällt dann die restliche Spannung ab?
@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 ..........
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.
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
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?
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.
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...
> 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.
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).
Das ist wohl wahr...Ein RC muss auf alle Fälle hin. Der Rest unterscheidet sich ja nicht viel vom Einlesen eines Tasters an einem I/O Pin.
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.