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
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.
Hier gibt ein Paar Beispiele mit mehr Tasten als Pins http://geocities.com/hppacito/calcs.html (mit soft)
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
Hi, im Anhang befindet sich eine AN von Atmel, in der eine 4x4 Matrix erklärt wird. Gruß 2-Phase
>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.
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
>Bist du dir sicher das man 2 Taster gleichzeitig drücken kann??
Bin zwar nicht Rolf, aber sicher...
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
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
>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.
>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...
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.
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
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 ?
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.