8 Buttons mit (einem) Analog-In messen - wie?

OP #5339163
Lesenswert?

Ach Meno! Die Frage ist mir schon peinlich, aber muss wohl so raus:

Aus ein paar Resten in meiner Bastelkiste möchte ich mir einen Atari 
Touch Me nachbauen. Mit einem Attiny85, 4 LEDś, einer I2C 
7-Segmentanzeige und 8 Buttons kann man das sicher easy umsetzen. - 
Dachte ich mir.

Nun habe ich aber doch ein Problem:
Für die Erkennung der 8 Buttons wollte ich einfach die 3V 
Referensspannung per Widerstand an einem Analog-In runterdrücken.

Also rechnete ich 3/8 was zu einem 0,375V Bereich pro Button führt. 
Jetzt wollte ich mit dem Ohmschen Gesetz einfach ermitteln wie groß die 
Widerstände sein müssen. Das will mir aber nicht wirklich gelingen, weil 
AAA-Batterien  jede Menge verschiedene Stromstärken haben können.

Ist das noch irgendwie machbar, oder muss ich doch einen ganz anderen 
Ansatz verfolgen? - Klar ein anderer MC oder ein 
Schieberegister/Portmultiplexer würden das Problem auch lösen, sind aber 
grade nicht vorhanden.

Vielleicht hat ja jemand einen Tip?
Angehängte Dateien:
#5339173
Lesenswert?

Rene M. schrieb:
> Also rechnete ich 3/8 was zu einem 0,375V Bereich pro Button führt.

Verstehe ich das richtig dass wenn z.B. Taste 1 gedrückt wird 0,375 Volt 
gemessen werden, bei Taste 2 0,75 Volt usw.?

Dann so:

nur zufällig hier schrieb:
> Ich werfe einfach mal "Spannungsteiler" in den Raum.


> Jetzt wollte ich mit dem Ohmschen Gesetz einfach ermitteln wie groß die
> Widerstände sein müssen. Das will mir aber nicht wirklich gelingen, weil
> AAA-Batterien  jede Menge verschiedene Stromstärken haben können.

Das Ohmsche Gesetz brauchts du eigentlich nicht. Alle Widerstände müssen 
einfach nur gleich groß sein, z.B. 10 K. Je höher umso weniger Last für 
die Batterien. Je geringer umso weniger Verfälschung durch den 
Eingangswiderstand des Analogpin vom Attiny85, aber höhere Belastung für 
die Batterien.
Angehängte Dateien:
Gast #5339206
Lesenswert?

Hey, wer will mich denn hier haben ? :-))
...ohne zu viel zu plappern, schau Dir doch mal an, wie es der
Chinamann mit dem Arduino Displayshield macht....

https://www.dfrobot.com/wiki/index.php/Arduino_LCD_KeyPad_Shield_(SKU:_DFR0009)

http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino

Der Vorteil von unterschiedlichen Widerständen ist es, daß bei
gleichzeitiger Betätigung mehrerer Taster ein Widerstandswert
entsteht, der mit keinem Verwendetem Widerstand übereinstimmt,
also auch gut auszuwerten ist.
Angehängte Dateien:
Gast #5339207
Lesenswert?

Spannungsteiler schrieb:
> Der Vorteil von unterschiedlichen Widerständen ist es, daß bei
> gleichzeitiger Betätigung mehrerer Taster ein Widerstandswert
> entsteht, der mit keinem Verwendetem Widerstand übereinstimmt,
> also auch gut auszuwerten ist.

In dieser Schaltung nicht.
Wenn RIGTH gedrueckt ist, kannst Du dazu drucken, was Du willst, das 
Ergebnis bleibt AD0=0V.

wendelsberg
Gast #5339217
Lesenswert?

wendelsberg schrieb:
> In dieser Schaltung nicht.

Richtig!
Die Verwendete Technik soll dem TO weiterhelfen sein Vorhaben zu
realisieren.
Ich mag niemanden sein Häppchen in mein Mund stecken und das auch
noch kauen....

Wer gescheid weiterdenkt und selber Kreativ bleibt, der wird mit
mehr Wissen und guten Lösungen belohnt :-))

Weitergehts!!!
(Firma: matzetronics) #5339305
Lesenswert?

Seid ihr denn sicher, das ihr immer Querstrom durch eure 
Widerstandskette schicken wollt, auch wenn nichts gedrückt ist? Gerade 
bei den niedrigen Werten in 'Spannungsteilers' Schaltung fliesst doch 
recht reichlich und nuckelt die Batterie leer.
Schliesst den Spannungsteiler doch so an, das ein Strom erst dann 
fliesst, wenns Knöpfchen gedrückt wird.
Gast #5339314
Lesenswert?

Rene M. schrieb:
> Aus ein paar Resten in meiner Bastelkiste möchte ich mir einen Atari
> Touch Me nachbauen. Mit einem Attiny85, 4 LEDś, einer I2C
> 7-Segmentanzeige und 8 Buttons kann man das sicher easy umsetzen. -
> Dachte ich mir.

Von den Teilen, die du hier auflistest, ist der µC sicher das billigste. 
Kauf dir einfach einen mit mehr Pins.

MfG Klaus
#5339470
Lesenswert?

Ich werfe mal den Begriff "R-2R-DAC" in den Raum. Ist einfach 
nachzubauen und ermöglicht das Auslesen von jeder beliebigen 
Tastenkombination. ein schöner Nebeneffekt ist, dass im 8-Bit-Register 
des ADC des Attiny dann eine Stelle für einen Button steht. D.h. man 
kann ohne viel "switch case" und ohne große If-Konstrukte arbeiten durch 
den (1<<x) Schiebeoperator.

MfG, Viktor
#5339688
Lesenswert?

Viktor B. schrieb:
> Ich werfe mal den Begriff "R-2R-DAC" in den Raum. Ist einfach
> nachzubauen und ermöglicht das Auslesen von jeder beliebigen
> Tastenkombination.

Bei 8 Tasten hast du 256 Kombinationen, das wird nix mit "normalen" 
5%/1% Widerständen. Da braucht man schon präzise 0,1% Resis und einen 
sauberen Aufbau um auch die "letzte" (aka LSB) Taste noch zuverlässig 
auszuwerten (von Kontaktwiderständen ganz zu schweigen).
#5339697
Lesenswert?

Matthias S. schrieb:
> Seid ihr denn sicher, das ihr immer Querstrom durch eure
> Widerstandskette schicken wollt, auch wenn nichts gedrückt ist? Gerade
> bei den niedrigen Werten in 'Spannungsteilers' Schaltung fliesst doch
> recht reichlich und nuckelt die Batterie leer.

Bei insgesamt 80K und 3 Volt fließen 37,5 uA, das nuckelt die Batterien 
nicht schnell leer. Die Widerstände können ggf. auch noch erhöht werden.

Das Gerät ist zudem wohl mehr aus wie an, weil es scheinbar ein 
Spassprojekt ist.
(Firma: matzetronics) #5339982
Lesenswert?

Jörg R. schrieb:
> Bei insgesamt 80K und 3 Volt fließen 37,5 uA, das nuckelt die Batterien
> nicht schnell leer.

Ist aber unnötig. Wenn man den Stromverbrauch eines MC im Tiefschlaf 
(hier z.B. ein Tiny2313 mit 400nA) dagegen setzt, sind 37µA schon eine 
Menge. Bei der Schaltung von 'Spannungsteiler' sinds noch deutlich mehr.
Ausserdem missachtet die erste Schaltung den empfohlenen Quellwiderstand 
für ADC Betrieb.
#5340083
Lesenswert?

Matthias S. schrieb:
> Jörg R. schrieb:
>> Bei insgesamt 80K und 3 Volt fließen 37,5 uA, das nuckelt die Batterien
>> nicht schnell leer.
>
> Ist aber unnötig. Wenn man den Stromverbrauch eines MC im Tiefschlaf
> (hier z.B. ein Tiny2313 mit 400nA) dagegen setzt, sind 37µA schon eine
> Menge. Bei der Schaltung von 'Spannungsteiler' sinds noch deutlich mehr.
> Ausserdem missachtet die erste Schaltung den empfohlenen Quellwiderstand
> für ADC Betrieb.

Das Gerät besteht unter anderem aus 2 Led 7-Segmentanzeigen. Schon 
deshalb spielen die 37uA überhaupt keine Rolle. Das Gerät wird 
vermutlich kaum zum Einsatz kommen weil es ein Spassprojekt ist. Der 
Tiny wird vermutlich auch nicht in den Tiefschlaf versetzt. Und, die 8 
mal 10k sind ein Vorschlag. Die können je nach Eingangswiderstand des 
Tiny, den ich grad nicht kenne, auch noch erhöht werden.
Rechne mal aus wie lang 2 AA Zellen 37uA bereitstellen können?

Der TO hat einen Attiny85, keinen 2313. Der 85er verbraucht vermutlich 
noch weniger Strom im Tiefschlaf, was aber wie oben beschrieben keine 
Rolle spielt.


Edit: Der Tiny85 hat 100M Eingangswiderstand am ADC. Die Widerstände 
können daher auch je 1M haben = 375nA Strom durch den Spannungsteiler.
Gast #5340248
Lesenswert?

Klaus schrieb:
> Kauf dir einfach einen mit mehr Pins.

Ein selten dusseliger Vorschlag, irgendwann genügen halt die Ports nicht 
mehr.

Rene M. schrieb:
> Ich schätze ich werde die Widerstandskette "vom Chinamann" vielen Dank
> an (Gast) nehmen.

Eine analoge Tastenabfrage habe ich gerade aufgebaut, funktioniert gut.

Als Hinweis: Ich habe in der Software Toleranzfenster gebaut. Für z.B. 
meine Taste 5 erwarte ich vom ADC einen Wert "464" (von 1023), die Taste 
ist aber gültig, wenn ich zwischen 444 und 484 lese. Der Abstand von 
einer zur nächsten Taste beträgt hier ca. 100, da scheinen mir +-20 als 
Toleranzfenster passend.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren