Hallo, wie schließe ich am besten ca. 30 Taster an einen AVR an?? Habe da an ein Schieberegister gedacht (74xx165) oder gibts da noch eine bessere Möglichkeit??
Eine Matrix 2x2 = 4 Taster oder 8x8 usw. auslesen kannst das dann wie ein Touchscren, mit coordinaten.
Dirk Hoffmann schrieb: > Hallo, > > wie schließe ich am besten ca. 30 Taster an einen AVR an?? > > Habe da an ein Schieberegister gedacht (74xx165) oder gibts da noch eine > bessere Möglichkeit?? EIN Schieberegister wird bei einer Matrix von 5 x 6 (=30 Tasten) nicht ausreichen, da brauchst du ca. 1,45 Schieberegister (11 bit)
I/O-Interfaces via I2C wären auch eine Lösung, wenn man möglichst viele µC-Pins sparen möchte. Nebenbei hatman dann auch garantiert keine Beeinflussung von Tastern bei gleichzeitigem Drücken von mehreren Tastern.
Das ist eben ein bissen ungeschickt, da die Taster alle in einer Reihe angeordnet sind
Sollen alle Schalter auch gleichzeitig erkannt werden ? Wieviele PINs hat Dein Controller dafür übrig ?
Für 30 Tasten benötigst du 6 Pins. Anleitung siehe hier unter Punkt 4: http://www-user.tu-chemnitz.de/~heha/Mikrocontroller/Tastenmatrix.htm
Was geneu meinst Du mit "da die Taster alle in einer Reihe angeordnet sind"?
Auch denkbar ist eine analoge Abfrage der Tasten. Dies würde mit 5 ADC-Pins und je 6 binär widerstandskodierten Tasten funktionieren.
Knut Ballhause schrieb: > Auch denkbar ist eine analoge Abfrage der Tasten. Dies würde mit 5 > ADC-Pins und je 6 binär widerstandskodierten Tasten funktionieren. Warum nicht mit einem ADC-Pin und 30 Widerständen?
Jürgen schrieb: > Warum nicht mit einem ADC-Pin und 30 Widerständen? Weil die Auflösung für alle denkbaren Tastenkombinationen dann nicht mehr gegeben ist. 6 Bit kann man auch mit Bauteiletoleranzen noch ganz gut auswerten und sicher erkennen, wenn mehrere Tasten zeitgleich gedrückt sind.
> wie schließe ich am besten ca. 30 Taster an einen AVR an?? Jede blöde PC Tastatur kann problemlos 102 Tasten einm einem uC erkennen. Multiplex heisst das Zauberwort. Damit kann ein AVR problemlos 64 Tasten an 16 Pins verwalten.
MaWin schrieb: > Jede blöde PC Tastatur kann problemlos 102 Tasten einm einem uC > erkennen. Aufgrund der fehlenden Dioden leider nicht alle Kombinationen. Merkt man schnell, wenn man auf der Tastatur mal Klavier spielen muss... MaWin schrieb: > Multiplex heisst das Zauberwort. > > Damit kann ein AVR problemlos 64 Tasten an 16 Pins verwalten. Wissen wir doch. Erfordert aber trotzdem jede Menge Leitungen zwischen den Tastern. Die analoge Variante würde mit 5 Leitungen + Masse auskommen, die man an den Schaltergruppen ohne Kreuzungen vorbeiführen kann, gerade wenn die Tasten in einer Reihe angeordnet sind.
Knut Ballhause schrieb: > Jürgen schrieb: >> Warum nicht mit einem ADC-Pin und 30 Widerständen? > > Weil die Auflösung für alle denkbaren Tastenkombinationen dann nicht > mehr gegeben ist. 6 Bit kann man auch mit Bauteiletoleranzen noch ganz > gut auswerten und sicher erkennen, wenn mehrere Tasten zeitgleich > gedrückt sind. Jein. 30 unterschiedliche Widerstände kann man locker unterscheiden, wenn gesichert ist, dass es nicht zwei gleiche Widerstandswerte gibt. Beispiel: 30 Widerstände in Reihe hängen – als Spannungsteiler zwischen AVCC und GND. Die Leitungsknoten zwischen den Widerständen dann jeweils per Taster auf einen ADC-Eingang legen. Wenn man den Bauteil-Toleranzen nicht traut, dann muss man die Schaltung eben kalibrieren : Der Mikrocontroller nimmt die Referenz-Werte für jede Taste auf und stellt sie ins EEPROM . Dann ist man auf alle Fälle auf der sicheren Seite – auch mit mehr als 30 Tasten. Auf diese Weise reicht ein einziger Pin eines ATtiny13A, um eine ganze Tastatur abzufragen.
Markus W. schrieb: > 30 Widerstände in Reihe hängen – als Spannungsteiler zwischen AVCC und > GND. Die Leitungsknoten zwischen den Widerständen dann jeweils per > Taster auf einen ADC-Eingang legen. Dann dürfen nie 2 Taster gleichzeitig gedrückt werden. Markus W. schrieb: > Wenn man den Bauteil-Toleranzen nicht traut, dann muss man die Schaltung > eben kalibrieren : Das ist meiner Meinung deswegen Murks, weil es viel Aufwand ist im Vergleich zu Alternativen wie Porterweiterung, Schieberegister ... Markus W. schrieb: > Auf diese Weise reicht ein einziger Pin eines ATtiny13A, um eine ganze > Tastatur abzufragen. Das ist schon recht optimistisch, und man muss Alterung, Temperaturabhängigkeit und Störeinstrahlung einfach ignorieren... Nicht geht über eine Schaltung, die auch im Worst-Case einfach nur funktioniert ;-)) Gruß Dietrich
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.