Forum: Mikrocontroller und Digitale Elektronik 12er Tastatur


von Paul (Gast)


Lesenswert?

Wie schließe ich am besten eine 12 Tastatur an meinen Pic. Ich will 
direckt auf 4 Eingänge gehen und die Werte in hex auslesen die Tastatur 
hat 13 Anschlüsse 1 I /12 O. Nicht betätigte Tasten sollen 0xF ausgeben 
damit die 0 frei bleibt. Gibt es ein TTL Baustein BCD to HEX? oder muß 
ich sie mit z.b. dioden selbst Codieren? Kann natürlich auch ein 
seperaten Pic dafür verwenden was meint ihr?

von Krapao (Gast)


Lesenswert?

12 Ausgänge der Tastatur auf 4 Eingange eines PIC hört sich für eine 
direkte Verbindung sportlich an.

Die Idee mit BCD/HEX-Konverter dazwischen hört sich vernünftiger an, 
wenn es ein Tastatur => Hex-to-BDC Konverter => PIC Aufbau ist. Dann 
bestehte die Chance, dass du mit der Leitungszahl aus kommst.

Selbstkodieren wäre eine Option, wenn du die Tastatur als Matrix 
schalten kannst, so wie es in der Artikelsammlung erklärt ist. Leider 
hast du kein Datenblatt angegeben. Deine 1 In/12 Out Beschreibung lässt 
mich an der Machbarkeit Selbstkodieren zweifeln.

Seperater µC (zur Not auch Pic :-) geht immer.

von Peter D. (peda)


Lesenswert?

Paul schrieb:
> die Tastatur
> hat 13 Anschlüsse 1 I /12 O.

Dumm gelaufen.

Besser wäre ne Matrix-Tastatur 3*4, dann brauchts nur 6 IO-Pins.
Oder +6 Widerstände an einen analog Input.


Peter

von Jens M. (dl4aas) Benutzerseite


Lesenswert?

Hallo Paul,

wenn Du EINEN analogen Eingang frei hast, wäre ein DA-Wandler aus 
Widerständen einen Versuch wert. Aus 13 Rs machst Du eine 
Spannungsteilerkette zwischen Vcc und GND, an die 12 Knoten schließt Du 
Deine Tastenleitungen an.

Da klappt solange, wie nur eine Taste gedrückt wird...

Anderer Ansatz: Drei Deiner Leitungen steuern ein 
12-Stufen-Schieberegister (z.B. 2x74HC164). Damit schiebst Du ein Bit an 
den 12 Leitungen vorbei und schaust mit der 4. Leitung, ob es an der 
Tastatur durchgeschaltet ist.

Da brauchst Du zwar zwei externe ICs, aber Du kannst auch erkennen, wenn 
mehrere Tasten gleichzeitig gedrückt werden. (Oh, mit Einschränkungen, 
da würden noch 12 Dioden und ein Widerstand fehlen, da sonst 0 und 1 der 
Registerausgänge gegeneinander getrieben werden.)

Bei Bedarf kann ich Dir das als Schaltplan skizzieren.

Gruß
Jens

von Jens M. (dl4aas) Benutzerseite


Lesenswert?

Ich nochmal,

nicht zu Ende gedacht...

Mit 2 x 74HC165 (Auch Schieberegister, aber mit parallelem Eingang und 
seriellem Ausgang) kommst Du direkter zum Ziel.

Die In-Leitung der Tasten auf Masse, die 12 Out-Leitungen an die 
parallelen Eingänge der zwei hintereinander geschalteten Schieberegister 
(Q des einen an Serial Input des anderen).

Und Du wirst Pullups brauchen, um die offenen Eingänge bei nicht 
gedrückter Taste festzulegen. 10k oder so.

Bei dieser Lösung reichen Dir 3 Leitungen: Tasten parallel ins Register 
einlesen (Load), Register takten (Clock) und serielle Daten in den 
Prozessor lesen (Q).

Diese letzte Lösung scheint mir angemessen: Keine Spezialbauteile (auch 
wenn man ein 74HCxx heute dafür halten könnte;-) ), keine Tricks. Wenn 
Du Platz für die zwei ICs hast.... Und vier unbenutzte Eingänge an einem 
Schieberegister fallen auch noch mit ab.

Gruß
Jens

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

diodenmatrix !


com      - GND

taste 1  - kat / an bit 0

taste 2  - kat / an bit 1

taste 3  - kat / an bit 0
taste 3  - kat / an bit 1

taste 4  - kat / an bit 2

taste 5  - kat / an bit 0
taste 5  - kat / an bit 2

taste 6  - kat / an bit 1
taste 6  - kat / an bit 2

taste 7  - kat / an bit 0
taste 7  - kat / an bit 1
taste 7  - kat / an bit 2

taste 8  - kat / an bit 3

taste 9  - kat / an bit 0
taste 9  - kat / an bit 3

taste 10  - kat / an bit 1
taste 10  - kat / an bit 3

taste 11  - kat / an bit 2
taste 11  - kat / an bit 3

taste 12  - kat / an bit 1
taste 12  - kat / an bit 2
taste 12  - kat / an bit 3


da gnügen 3 bits welche mit je einem Pullup hochgehalten werden



den Rest machs du im MC mit look ap

du kannst natürlich ach anders kodieren und die lookup weglassen

von Paul (Gast)


Lesenswert?

Danke für die Antworten.

Winfried J. 0-3 sind 4 (Bits) habe es och so gedacht funktioniert aber 
nicht so ohne weiteres da ich die 0 Taste Null mit den wert 0 habe und 
im Ruhezustans alle pins auf H.

von Paul (Gast)


Angehängte Dateien:

Lesenswert?

Schaltung V1.0 ist Fertig mit Passic OR technik die ich zum Schluß mit 
Transestoren invertiere. die Rote Diode brauch man nicht umbedingt.
suche aber noch verbesserungen.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

o.k.

klar 4 bit
war doch schon spät

alle auf high ruhezustand gibt 0xf
com an GND spart die invertierung mit transistoren und den 
widerstandsfriedhof

taste 0 kathode anode bit 0
taste 0 kathode anode bit 1
taste 0 kathode anode bit 2
taste 0 kathode anode bit 3


taste 1 kathode anode bit 1
taste 1 kathode anode bit 2
taste 1 kathode anode bit 3

taste 2 kathode anode bit 0
taste 2 kathode anode bit 2
taste 2 kathode anode bit 3

taste 3 kathode anode bit 2
taste 3 kathode anode bit 3

taste 4 kathode anode bit 0
taste 4 kathode anode bit 1
taste 4 kathode anode bit 3

taste 5 kathode anode bit 1
taste 5 kathode anode bit 3

taste 6 kathode anode bit 0
taste 6 kathode anode bit 3

taste 7 kathode anode bit 3

taste 8 kathode anode bit 0
taste 8 kathode anode bit 1
taste 8 kathode anode bit 2

taste 9 kathode anode bit 1
taste 9 kathode anode bit 2

taste a(10) kathode anode bit 0
taste a(10) kathode anode bit 2

taste b(11) kathode anode bit 0
taste b(11) kathode anode bit 1

so gehts direkt und ohne lookup

für bin

Du must die Diode für das Bit welches jeweils  angezeigt werden soll 
weglassen, auch andere Kodierungen z.B. Gray oder BCD sind so möglich.

kannst dir auch einen eprom brennen wenn dir löten zu langweilig ist

Taste an Adresse data an MC Eingang

Nachteil all solcher Coder du darfst jeweils nur eine Tase drücken.
Besser ist es multiplexfähige Tastaturen zu benutzen oder jeder Taste 
ein eigenes bit zu spendieren. Ein eigener Tiny  welcher über I2C das 
ergebniss ausgibt und noch andere Ereignisse wie hold oder release 
meldet
wäre hier sinnvoll.

viel spass

von Paul (Gast)


Angehängte Dateien:

Lesenswert?

Danke nochmals
ach Ja ich habe die Tastatur von Ebay Artikelnummer: 220878455035 2€ das 
Stück

Ich habe die Schaltung auf das Maximum mit 3 Zusats Tasten erweitert.
Wenn 2 Tasten Gedrückt werden kann man das mit den Pic überptüfen in dem 
man testet ob bei einen Wechsel der Wert 0xF dabei war. Die Roten Dioden 
brauch man nicht unbedingt. Bei der Oberen Schaltung kann man die 
Inventierung auch im Pic machen hat den vorteil man kann mit 0x0 
(ungleich null = taste getrückt)testen ob eine taste getrückt ist und 
inventiert dann das Eingangssignal.

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
Noch kein Account? Hier anmelden.