Forum: Mikrocontroller und Digitale Elektronik Taster/Multiplexer-Kombination


von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Ich hab ein Problem mit meiner Taster-Mulitplexer-schaltung.
Für die Taster verwende ich Miniaturtaster, die Multiplexer/Encoder sind 
74HC148. Da dieser IC LOW-Active arbeitet habe ich Probleme einen 
Pull-Up widerstand einzuplanen, würde so wie ich mir das überlege nur 
mir einem einzigen Taster funktionieren :/ bei mehreren ist der 
gedrückte Taster leider nicht mehr zuordbar.
Über einen Tipp würd ich mich freuen! :)
danke

lg Markus

von MaWin (Gast)


Lesenswert?

a) Deine Schaltung ist keine Multiplexer-Schaltunv.
b) Deine Verschaltung der 2x3 Ausgänge ist ... unorthodox.
c) Prioritätsenkoder können nicht 2 Ereignisse, also gkeichzeitig 
gedrückte Tasten, diskriminieren.
d) 6 Eingänge um 11 Taster zu erfassen sind vollkommen ausreichend ganz 
ohne Zusatzbauteile, sogar wenn man mehrere gkeichzeitig gedrückt 
erkennen wil.

von Markus (Gast)


Lesenswert?

Die Schaltung wird einem allerdings so auch im Datenblatt vorgestellt
http://noel.feld.cvut.cz/hw/st/1903.pdf

in diesem Anwendungsfall brauche ich auch nicht erfassen ob 2 Tasten 
gedrückt werden, das ist mir schon klar ;)

zu d) erklär mir dazu bitte mehr :) allerdings kann ich nur in Notfall 
weiter 2 Bit für die Taster verwenden.

von Peter D. (peda)


Lesenswert?

11 Tasten kannst Du als 3*4 Matrix (7 IO-Pins) einlesen, dann kannst Du 
2 Tasten gleichzeitig erkennen.

Oder ganz einfach über 2 Schieberegister 74HC165 kaskadiert an 3 IO-Pins 
des MC. Aber die Pullups je Taste nicht vergessen!

von Markus (Gast)


Lesenswert?

Danke für die Antwort! Die Lösung mit den 74HC165 hört sich sehr 
interessant an :)
dann brauche ich bei 2 stück auch 5 Leitungen?! (oder hab ich mich 
vertan?)
1x CLK(1x für beide IC)
2x CLK Inhibit (1x je IC)
2x Q(Output, wobei ich den doch auch zusammenlegen könnte, nicht? also 
wenn ich die beiden seriell abfrage)

danke nochmal!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Markus schrieb:
> 2x Q(Output, wobei ich den doch auch zusammenlegen könnte, nicht? also
> wenn ich die beiden seriell abfrage)

Wenn du Q7 des ersten mit DS des zweiten '165er verbindest, reicht das Q 
des zweiten, du schiebst dann bis zu 16 Takte.

Markus schrieb:
> 2x CLK Inhibit (1x je IC)
Und Clk Inhibit brauchst du eigentlich gar nicht. Wenn du es 
anschliesst, an beide gemeinsam.

: Bearbeitet durch User
von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Danke Matthias!

hab die neue Schaltung angehängt, stimmt das so?
Danke im voraus!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Markus schrieb:
> hab die neue Schaltung angehängt, stimmt das so?

Wenn dir das nicht zu unübersichtlich ist mit den mal belegten und mal 
nicht belegten parallelen Eingängen, stimmt das so schon. Allerdings 
musst du bei der (positiven) Logik unbedingt noch Pulldowns an den 
Tastern vorsehen, ein unbelegter CMOS Eingang schwabbert undefiniert 
herum.

Warum machst du es dir so kompliziert und legst die Eingänge nicht 
einfach der Reihe nach auf die Eingänge? Mir wäre das jedenfalls zu 
blöd, immer die unbenutzten Eingänge in meiner Tasteroutine 
auszumaskieren.

von Markus (Gast)


Lesenswert?

Danke Matthias! :)

Hab mir das chaos hier eingebaut, um es nicht auf das Board zu 
verlegen^^
Die Taster sind rund um die 165er platziert und so hab ich immer den Pin 
und den Taster die am nähesten zueinander stehen verbunden :)

nochmals danke und liebe Grüße,
Markus

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ach, denke doch auch bitte daran, an jedes Schieberegister noch einen 
100nF Abblockkondensator zwischen GND und Vcc zu machen. Das erspart dir 
später eine mühselige Suche nach unerklärlichen Fehlimpulsen.

Noch ein Programmiertipp: Beim ersten Einschalten könnte in den internen 
Flipflops ein undefinierter Zustand sein. Also bevor du wirklich Tasten 
ausliest, schiebst du einmal eine volle Runde und ignorierst das 
Ergebnis.

von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Dankeschön! den Kondensator hab ich noch direkt hinzugeschalten!
Allerdings habe ich nun doch ein Problem mit den Pulldown-Widerständen 
:O
Wie ich glaube, würde meine Schaltung so nur bei einem einzigen Taster 
allein funktionieren, nicht aber bei mehreren :/
Ich hab dazu mal ein Bild angehängt :)
Ich glaube, dass so wenn ein Taster gedrückt wird, der IC alle Taster 
als gedrückt erkennt da ja alle Pulldowns über GND miteinander verbunden 
sind, oder liege ich komplett falsch?^^

nochmals danke ;)

lg Markus

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Markus schrieb:
> da ja alle Pulldowns über GND miteinander verbunden
> sind, oder liege ich komplett falsch?

Nein, stimmt schon, alle Pulldowns sind einseitig an GND, deswegen ja 
Pulldown. Aber auf der anderen Seite ja nicht, dort liegt jeder 
Widerstand nur am Taster und am SR Eingang. Wenn du einen Taster 
drückst, wird also dieser SR Eingang high werden, aber da GND weiterhin 
GND bleibt, bleiben die anderen ungedrückten Taster schön auf low. Du 
hast es etwas ungeschickt gezeichnet, weil der Bus da quer durch geht, 
aber die Schaltung ist schon richtig.

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.