Forum: Mikrocontroller und Digitale Elektronik Taster zwischen 2 Portpins


von charls (Gast)


Lesenswert?

Hi ich habe ein Problem oder vielleicht auch nur eine Denkblockade mit 
einer bestimmten Anordnung von Tastern zwischen Portpins. Und zwar habe 
ich zwei Eingänge und daran sind 6 Taster angeschlossen. Jeweils 3 auf 
einem andern  Pin welcher als Ausgang funktioniert.

Die andere Seite der Taster ist an 3 anderen Portpins geschaltet. Wie 
kann ich jetzt mit Multiplexing herausfinden welcher gedrückt ist? Oder 
ist das überhaupt die richtige Methode?

Ich muss doch zuerst einen Eingang disablen also auf High Impedance 
setzen und dann kann ich versuchen den anderen auszulesen oder kann ich 
beide als Eingang lassen und entscheide dann einfach mittels einer If 
Abfrage welchen Zustand die einzelnen Eingange haben für meinen 
Programmablauf.

Gruß charls

von Stephan S. (stephan1008)


Lesenswert?

Hallo Charls,

wenn ich dich richitg verstanden habe, willst Schaltvorgänge von Tastern 
detektieren.

Ich habe mal was ähnliches gemacht, dabei habe ich den gemeinsamen Port 
als Interrupteingang geschaltet, welcher über Dioden mit den 
Tasterleitunge verbunden ist.
Wenn nun ein Taster gedrückt wird, wird ein Interrupt ausgelöst.
Entsprechend der Anzahl der Taster kannst du Ihne eine Wertigkeit 
zuordnen, in deinem Fall 0x07 für drei Taster. Diesen Wert kannst du mit 
dem entsprechenden Eingangsregister der Taster vergleichen. Und schon 
weißt du welcher/welche Taster gedrückt sind.

mfg Stephan

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Uiui, da reden zwei. Aneinander vorbei...

charls schrieb:
> Und zwar habe ich zwei Eingänge
Ich würde die anderen 3 als Eingäne nehmen, dann musst du nämlich nur 
zwischen 2 Gruppen umschalten...

> Wie kann ich jetzt mit Multiplexing herausfinden welcher gedrückt ist?
> Oder ist das überhaupt die richtige Methode?
Ich hätte also 2 Ausgänge, von denen jeweils 3 Taster auf 3 Eingänge 
gehen. Dann schalte ich bei den 3 Eingängen die Pullups ein. und die 
beiden Ausgänge hochohmig (=auf Eingang). Initialisierung fertig.

Im Programmablauf wird jetzt immer einer der Ausgänge auf 0 geschaltet, 
und dann die Eingägne eingelesen. Wenn dabei einer der Eingänge auf 0 
ist, dann wurde die entsprechende Taste gedrückt. Danach wird der 
Ausgang wieder zum Eingang und anschleißend der andere Ausgang auf 0 
geschaltet. Jetzt kannst du die anderen 3 Taster einlesen. Usw. usf.

Zeichne dir den Ablauf einfach mal auf. Wichtig ist, dass du erkennst, 
dass Mehrfachbetätigungen ohne Entkopplungsdioden nicht zuverlässig 
erkannt werden können...

von charls (Gast)


Lesenswert?

Vielen Dank ich werds ausprobieren :)

von oldmax (Gast)


Angehängte Dateien:

Lesenswert?

Hi
Aber die Dioden zum Entkoppeln nicht vergessen, sonst kann, wenn mehrere 
Taster gleichzeitig betätigt werden, ein "Kurzschluss" entstehen. Siehe 
Skizze.
Gruß oldmax

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.