Hallo Ich habe hier ein Tastenfeld 3x4 mit 12+1 Ausgängen. Leider sind die Taster alle auf einer Seite miteinander verbunden, da kann ich auch nichts ändern. Ich überlege jetzt, wie ich das irgendwie an 7-8 Pins bekomme? Das wird wohl nur aktiv gehen, also mit Spannungsversorgung und Logik dahinter? Oder gibt es da andere Tricks? Spannungsversorgung ist natürlich lästig. Wenn es nicht ohne Spannung geht, dann favorisiere ich eine Lösung mit einem nachgeschalteten PIC, der alles an EINEM Ausgang seriell rausschickt. Dann kann ich die Tastatur an alle meine Testschaltungen an nur EINEN Eingang anschließen. Das hat auch was... Gruß Thomas
> wie ich das irgendwie an 7-8 Pins bekomme?
Ich würde da einfach die übliche Schieberegisterlösung mit dem 74hc165
nehmen...
STichwort Schieberegister! 2 Stück a 8Stufen oder 3 a 4Stufen. Stichwort: 74164. ..oder Multiplexer: 74151 Kanäle nacheinander auswählen und auf einen Prozessor Pin schalten und dann Zustand angucken. Du kannst das auch mit einer Diodenmatrix lösen, oder mit Prioritäsencoder... Oder ein Widerstandsnetzwerk und dann mit AD Wandler einlesen... J.
> die übliche Schieberegisterlösung Und da ist der Artikel: http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI
Da wird wohl ein ADC-Pin und eine Reihenschaltung von Widerständen, deren Abgriffe durch die Taster z.B. nach Gnd verbinden werden, die einfachste Lösung sein. Voraussetzung sind halbwegs gut definierte Übergangswiderstände der Schalter.
>Da wird wohl ein ADC-Pin und eine Reihenschaltung von Widerständen, >deren Abgriffe durch die Taster z.B. nach Gnd verbinden werden, die >einfachste Lösung sein. Voraussetzung sind halbwegs gut definierte >Übergangswiderstände der Schalter. Tasten-Mehrfach-Detektierung (gleichzeitges Drücken von Tasten) geht darüber nicht, es sei denn, er nutzt ein 12 Bit ADC.
Je länger ich drüber nachdenke... ...werd ich wohl doch einen PIC nehmen. (Kosten 1-2 Euro) Anschluß dann über +5V/Masse und eine Datenleitung. Damit kann ich beliebig Doppelclicks, Mehrfachtastendruck, ja sogar ganze eingegebene Zahlenfolgen übertragen. Ein einfaches Protokoll mit Pulsweiten sollte reichen. 3 Byte (Kennung, Daten, XOR Prüfsumme) mit warten auf Rückantwort sollten reichen. Gruß Thomas
Gibt auch noch folgende Möglichkeit. Man legt über einen Widerstand an einen ADC-Eingang ein PWM mit 50/50, glättet das ein bisschen und misst die Spannung. Ist die Spannung dort ca. Vcc/2, dann ist keine Taste gedrückt. Jetzt kommen an den gleichen Pin eine Taste 1 gegen GND und eine Taste 2 gegen Vcc. Ist Taste 1 gedrückt, misst der ADC irgendwas bei 0V, ist Taste 2 gedrückt, wird Vcc gemessen. Schwups, kann man auf einem ADC-Pin drei mögliche Zustände abfragen. Natürlich bräuchte man bei der Lösung für 12 Tasten 6 ADC-Pins... Die Lösung mit der Widerstandsmatrix hört sich auch gut an. Vielleicht das Tastenfeld aufteilen in 2 Teilbereiche...
...bei 12 Tasten musst du einen 16:1 mux nehmen. Welchen würdest du empfehlen? Wenn es 12 Widerstände a 1206 machen, warum dann einen mux nutzen? kostet ca 1/10 von MUX. warum umständlich wenns auch einfach geht? J
Ich steh bei sowas auf PCF8574, zwar relativ teuer im Vergleich zu Shift Registern, aber sehr einfach per I2C zu steuern und mit ner dritten Leitung auch Interrupt. Jeder Taster einzeln auslesbar/generiert Interrupt.
>...bei 12 Tasten musst du einen 16:1 mux nehmen. Welchen würdest du >empfehlen? Falsch. Du muss ja nicht alles auf eine Leitung muxen. >Wenn es 12 Widerstände a 1206 machen, warum dann einen mux nutzen? Dann aber mur mit ADC, Problem oben schon erwähnt >kostet ca 1/10 von MUX. nein, im Endeffekt ist das teurer. Oder nimmst du für 8000 LogicGatter auch 8000 diskrete Widerstände?
Hi Geld spielt keine Rolle! ;-) Also, wenn ich es mit einem PIC mache, dann kann ich sogar die Tasten vervielfachen, wenn ich einen Bank Umschalter vorsehe. Außerdem noch ein kleines LCD dran, dann kann man sehen, was man eingegeben hat. Das LCD könnte über eine zweite Leitung an eine Schaltung dran, dann kann ich über ZWEI!!! PINs mehre Keypad Bänke einlesen und Werte an ein LCD senden. Dafür bau ich mir dann eine LIB... Danke für eure Alternativen... Gruß Thomas
Ein separater Controller bietet natürlich die größte Flexibilität. Ein PIC hat hierbei allerdings den Nachteil das er nur an vier Pins interne Pullups hat. Sollte sich das inzwischen geändert haben würde ich mich über einen entsprechenden Hinweis freuen. Unabhängig davon: Wenn es sich bei dem Gerät um ein Einzelstück oder eine Kleinserie handelt ist alles in Ordnung. Ansonsten gibt es bei jedem zusätzlichen Controller das Problem das er auch programmiert werden muss. Und der Aufwand um das zu tun sollte nicht unterschätzt werden.
Bänke umschalten kannst du auch mit PCF8574ern, Display geht auch am jetzigen Controller, mit Muxen bekommst du auch zig zig zig Tastern dran, mit billigst shift registern bekommste du 64 Taster auf nichmal einen kompletten Port... Alles einfacher als ein Controller... Musst du wissen ;)
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.