zu viele Taster

Gast #503152
Lesenswert?

Hallo zusammen
Mir stehen 32 Pins zur Verfügung und habe 15 Taster. Wenn ich jeden 
Taster einzeln ansteuere benötige ich 15 Pins... gibt es nicht andere 
Möglichkeiten die Taster anzusteuern?? Hab mal gehört man könnte das mit 
einer Matrix machen, weiß aber nicht genau wie das funktioniert?!
Ich hoffe das jemand was weiß?..

Gruß Max
Gast #503154
Lesenswert?

Hi such doch mal bei google nach Schieberegistern.
bin mir jetzt nicht 100% sicher wie dich heissen aber da bekommst du 8 
Taster mit 4 Leitungen abgegriffen und wenn du 16 Taster hast brauchst 
du nur 5 Leitungen da die Steuerleitungen untereinander verbunden 
werden.
Gast #503161
Lesenswert?

4*4 Matrix: Vier Leitungen von Ausgängen aus in die Matrix, senkrecht 
dazu vier raus auf Eingänge. Macht 8 Pins. Jeder Taster sitzt auf einem 
Knoten. Zum Abfragen der Reihe nach die vier Ausgänge auf eins setzten 
(immer nur einen), und jeweils schauen, welcher Eingang kommt. Ein 
Nachteil sein nicht verschwiegen: Man darf immer nur einen Taster 
gleichzeitig drücken.

Oliver
Gast #503170
Lesenswert?

>Man darf immer nur einen Taster gleichzeitig drücken.

1. Man kann einen Taster nur gleichzeitig drücken...
Besser: "Man darf immer nur einen Taster zur Zeit drücken."
{"Das war Offtopic!" frei nach der Maus)

2. Die AN von Atmel ist die einfache Variante der Matrix-Auswertung, die 
sich nicht um Mehrfachtastendrücke kümmert.
Man kann die Routine aber auch problemlos so erweitern, dass man 
Mehrfachtastendrücke herausfiltern kann.


#503229
Lesenswert?

Oliver wrote:
>Man darf immer nur einen Taster gleichzeitig drücken.

Mehrere gleichzeitig habe ich bei mir bewusst zugelassen. Benutzt wird 
es wie eine SHIFT, STRG oder ALT Taste. Man scannt alle Knoten durch 
bekommt dann eben auf zweien eine 1. Du weisst allerdings nicht, welche 
Taste zuerst kam. Aber es reduziert die Anzahl der notwendigen Tasten 
und damit der Leitungen.

Gruß

Rolf
#503257
Lesenswert?

Max wrote:
> @Rolf
> Bist du dir sicher das man 2 Taster gleichzeitig drücken kann??

Du kannst auch alle gleichzeitig drücken. Wenn du für jeden Knoten z.B. 
ein bit in einer Variable setzt, dann hast du am Ende überall eine 1 
bzw. 0 drin, je nachdem wie es verschaltet ist. Und die Variable nimmst 
du dann für die weitere Auswertung und nicht das bit.
Nur: du musst alle Knoten abscannen und kannst nicht beim ersten Treffer 
aufhören.
Ich habe mir ein USB Keypad besorgt (Nummernblock mit Pfeilen) und das 
ohne die Electronic an den µC angeschlossen. Num-Lock benutze ich, um 
zwischen Zahlen und den Pfeiltasten umzuschalten.

Rolf
Gast #503277
Lesenswert?

>Normalerweise ist aber an jeder Taste eine Diode angebracht, nicht nur >eine pro 
Zeile wie in der AN

Brauchte ich komischerweise noch nie. Die Dioden in der AN sind doch 
dazu da, den INT-Pin zu entkoppeln, damit man irgendeine Taste zum 
Wecken benutzen kann.
Das Schöne an der Lösung in der AN ist doch, dass man sie problemlos 
erweitern kann.
In der AN arbeitet man so, dass man alle Spalten (oder alle Zeilen) auf 
GND legt und dann mit Hilfe der internen Pullups die Zeile (oder Spalte) 
der gedrückten Taste herausfindet (und durch den entsprechenden 
Spalten-Zeilen-Ansteuerung-Tausch die andere Koordinate).
Setzt man jetzt nur einen Pin auf Masse-Potential, und "sieht" sich die 
korrespondieren Pins an, dann kann man durch wechseln des Masse-Pins 
feststellen, ob mehr als nur eine Taste gedrückt wurde.

>Du weisst allerdings nicht, welche Taste zuerst kam.

Klar kann man das, da/wenn man die Tastatur in regelmässigen Abständen 
abfragt.
#503292
Lesenswert?

Rahul, der Trollige wrote:

> Klar kann man das, da/wenn man die Tastatur in regelmässigen Abständen
> abfragt.

Du kannst natürlich 100% Rechenleistung für die Abfrage der Tastatur 
verbrauchen. Dann ist es auch möglich, festzustellen, ob einer den 
bewährten Microsoft Doppelklick in der richtigen Zeitspanne abgedrückt 
hat.
Seit neuestem verwende ich übrigens eine RC5 Fernsteuerung. Das ist auch 
nur ein Pin, aber fluppt sicherer als ein analoger Eingang.
Gast #503294
Lesenswert?

Kann mich daran erinnern, als ich mit µC angefangen habe wurde die 10er 
Tastatur der C-Control so abgefragt. Unterschiedliche Widerstände pro 
Taste die auf einen gemeinsamen Widerstand gehen und dann 
unterschiedliche Spannungen (Spannungsteiler) zur verfügung stellen. 
Diese werden dann im Programm abgefragt. Hat aber in der Praxis (bei mir 
auf jeden Fall) nicht richtig funktioniert.

C-Control habe ich dann irgenwann aufgegeben und mich hats zu den AVR's 
und ASM hingezogen.

Gruß,
Tubie
Gast #503295
Lesenswert?

Mit Schieberegistern kannst du "beliebig" viele Taster anschalten und 
benötigst immer  nur 3 Drähte, CLOCK, DATA STROBE...

1 Draht mehr und es funktioniert auch interruptgesteuert.

Unschlagbar oder ?

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