Hallo allerseits, ich plane derzeit eine Schaltung mit einem ATmega32U2, an die 64 Taster angeschlossen werden sollen. Wie man eine Tastermatrix mittels AVR Portpins aufbaut weiss ich, aber leider habe ich keine 16 IOs mehr frei. Dafür ist das SPI aber noch unbelegt, daher habe ich daran gedacht, das ganze mittels Schieberegistern zu lösen. Klar, ich könnte einfach 8 von den hc165 hintereinander hängen, aber diese Lösung braucht sehr viel Platz und ist wie ich finde nicht so schön wie eine Matrix. Ich will also einen hc595 ( Zeilentreiber ) und einen hc165 ( Spaltenleser ) einsetzen. Das Problem ist jedoch, wenn eine Zeile aktiv ( auf GND gezogen ) ist, sollen die anderen Zeilen hochohmig sein. Der hc595 kann aber kein Tristate. Kann ich das ganze so wie in der Zeichnung ( Skizze, der Einfachheit halber nur mit 3x3-Matrix ) gezeigt realisieren ? Die Transistoren müssten doch die Zeilen hochohmig schalten, wenn an der Basis GND anliegt. Ach ja, was wäre in dem Fall ein guter Wert für die Basiswiderstände ? 470 Ohm ? Gruß, A.
Matrix-Neuling schrieb: > Kann ich das ganze so wie in der Zeichnung ( Skizze, der Einfachheit > > halber nur mit 3x3-Matrix ) gezeigt realisieren ? Genauso macht man das. Matrix-Neuling schrieb: > Die Transistoren müssten doch die Zeilen hochohmig schalten, wenn an der > > Basis GND anliegt. Die Transistoren kannst du weglassen. Da geht TTL-Ausgang auf TTL-Eingang. Matrix-Neuling schrieb: > Ach ja, was wäre in dem Fall ein guter Wert für die Basiswiderstände ? > > 470 Ohm ? Viel zu klein. 10 KOhm. mfg.
Matrix-Neuling schrieb: > Das Problem ist jedoch, wenn eine Zeile aktiv ( auf GND gezogen ) ist, > sollen die anderen Zeilen hochohmig sein. Der hc595 kann aber kein > Tristate. Das geht auch mit ner Diode. Bei 74HC ist low bis 1,35V erlaubt. Peter
Peter Dannegger schrieb: > Das geht auch mit ner Diode. > > Bei 74HC ist low bis 1,35V erlaubt. Richtig! Das sind ja Taster und keine LEDs. Thomas Eckmann schrieb: > Matrix-Neuling schrieb: > >> Kann ich das ganze so wie in der Zeichnung ( Skizze, der Einfachheit > >> > >> halber nur mit 3x3-Matrix ) gezeigt realisieren ? > > > > Genauso macht man das. Wenn ich nochmal darüber nachdenke, habe ich das eigentlich immer ganz anders gemacht. Mit zwei 8:1 Multiplexern/Demultiplexern. 4051 oder sowas ähnliches. mfg.
Habe mal eine Variante angehängt, die ich gern in solchen Situationen nutze: Matrix hängt statisch zwischen Widerständen und Transistorbasen, wird eine Taste gedrückt, geht das Potential am Spalten-Widerstand runter (auf Basispotential), der Transistor (für die Zeile) schaltet durch. Bei einem Tastendruck gehen also immer 2 Nullen zum Schieberegister. Macht bei meiner 4x4 Telefontastatur 1 Widerstandsnetzwerk, 4 Transisoren und 1 4021 (würde der HC165 genausogut machen) und 3 Portpins zum µC. mfG ingo
Wow, so viele Ideen auf einmal ... da weiss man gar nicht, was man machen soll :) @Peter Dannegger: So richtig habe ich das mit der Diode noch nicht verstanden, wie sie da rein soll. Habe ein Bild davon gemacht, wie ich es mir in etwa denke, aber das wird vermutlich falsch sein. @ingo: Die Idee hat auch etwas. Damit lässt sich aber nur eine Taste einwandfrei erkennen, oder ? ( im Falle einer "normalen" Tastenmatrix kann man ja immerhin bis zu 2 Tasten gleichzeitig erkennen ) Also im Grunde rechne ich damit, dass bei mir immer nur eine Taste gedrückt wird, aber es wäre trotzdem schön, mehrere erkennen zu können. @Thomas Eckmann: Mehrere 4051er hätte ich sogar hier herumliegen. Das Problem wird aber sein, dass ich dann wohl insgesamt 8 IOs brauche ( 2 für die eigentlichen Signale und 2*3 für die A,B,C Leitungen der beiden 4051er ). Mit Mühe und Not komme ich im Moment auf 7 freie IOs ( SPI-Pins mitgezählt ). Vielen Dank für die bisherigen Informationen. Gruß, A.
> Damit lässt sich aber nur eine Taste > einwandfrei erkennen, oder ? Stimmt, hatte ich versäumt zu erwähnen, ausserdem wird diese Variante, bei größeren Matritzen, unwirtschaftlicher. Für eine eindeutige Erkennung mehrerer unabhängiger Tasten, müsstest Du ohnehin vor jeder Taste noch eine Diode vorsehen, mit den Zeilendioden verhinderst Du nur Kurzschlüsse zwischen Zeilen, wenn 2 Tasten einer Zeile gleichzeitig gedrückt werden. mfG ingo
Matrix-Neuling schrieb: > @Peter Dannegger: > So richtig habe ich das mit der Diode noch nicht verstanden, wie sie da > rein soll. Habe ein Bild davon gemacht, wie ich es mir in etwa denke, > aber das wird vermutlich falsch sein. Nö, das ist vollkommen richtig so. Es reichen aber auch kleinere Dioden (1N4148). Peter
Ich weiss, ich weiss, der Thread ist fast 6 Jahre alt, bitte nicht hauen... Aber ich bin gerade über Google hier drauf gestossen und dachte mir, dass der folgende Link auch für andere sicherlich nach wie vor von grossem Interesse sein könnte, das MUSS ich in meinem Lieblingsforum einfach teilen :-): http://www.sprut.de/electronic/pic/grund/tasten/tasten.htm Schaut mal das dritte Bild dort an. Da habe ich jahrelang immer 2*SQRT(Anz.Tasten) an Pins verschleudert, dabei ginge es auch so viel sparsamer - solange nur eine Taste aufs Mal gedrückt wird. Finde ich der Hammer... (Alternativ ginge natürlich dann auch noch die ADC-Variante, da liessen sich über nur einen Pin einige hundert Tasten anschliessen, wenn jedem Taster ein Widerstandswert zugeordnet wird. Da kommen dann aber noch andere Probleme, unsauberes Schliessen des Tasters, Toleranzen der Widerstände, ADC-Noise etc...) Vielleicht nützt es einem? Liebe Grüsse jedenfalls, Edi
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.