www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik zu viele Taster


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marek Swierzy (marekswierzy)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibt ein Paar Beispiele mit mehr Tasten als Pins

http://geocities.com/hppacito/calcs.html

(mit soft)

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: 2-Phase (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi, im Anhang befindet sich eine AN von Atmel, in der eine 4x4 Matrix 
erklärt wird.

Gruß 2-Phase

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.



Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rolf
Bist du dir sicher das man 2 Taster gleichzeitig drücken kann??

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bist du dir sicher das man 2 Taster gleichzeitig drücken kann??

Bin zwar nicht Rolf, aber sicher...

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok passt... vielen dank

Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suchbegriff "N-Key-Rollover" oder "2-Key-Rollover". Normalerweise ist 
aber an jeder Taste eine Diode angebracht, nicht nur eine pro Zeile wie 
in der AN

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: König Europas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch 255 Tasten an einen Pin hängen...wenn es der 
Analogeingang ist!

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Du kannst auch 255 Tasten an einen Pin hängen...wenn es der
>Analogeingang ist!

Da der AVR einen 10bit-ADC hat, würden auch 1023 gehen...

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, AVR wurde nicht erwähnt...

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Riskante Sache, mit bei einem Bitfehler von mindestens +- 1/2 LSB...

Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jasmin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS2 Numpad auswerten ist auch eine Möglichkeit.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.