8 Tasten, aber nur 3 Pins

OP #520665
Lesenswert?

Hallo,

ich möchte 8 Tasten abfragen. Gleichzeitiges Drücken mehrere Tasten muß 
möglich sein. Es stehen nur 3 Ports eines uC zur Verfügung.

Ansatz: Die Taster an eine 8 Bit Schiebregister anschließen. Irgendwie 
dann nacheinander die Taster ansteuern und zeitgleich einlesen, ob der 
asugegeben Pegel durch einen gedrückten taster überschreiben wird.

Da gibt es doch bestimmt eine "Standardlösung" dafür? Wird allerdings 
eng mit nur 3 Pins, oder?

Über Anregungen und Tips freue ich mich
Marco
Gast #520678
Lesenswert?

mal auf die Schnelle aufgemalt:

1. SRG mit 0x00 initialisieren.
2. Bei Tastendruck wird Interrupt ausgelöst.
3. SRG mit 0x3F initialisieren und 8 mal schieben (jeweils den 
Interrupt-Pin abfragen.)
Angehängte Dateien:
#520724
Lesenswert?

Frank Huber wrote:
> mal auf die Schnelle aufgemalt:

Warum der Aufwand mit den Dioden ?

Einfach nen 74HC165 nehmen und gut is.

Zum Entprellen braucht man eh den Timerinterrupt. Man hat also durch den 
externen Interrupt keinerlei Nutzen.

Auch will er ja Tasten gleichzeitig erkennen, der externe Interrupt 
triggert aber nur auf die erste.


Peter
Gast #520731
Lesenswert?

Ich würd mal sagen, es kommt darauf an, welche 3 Ports frei sind. Wenn 
zumindest 2 von denen ADC Ports sind, dann kann man die Taster als R2R 
DAC verschalten und mit dem ADC dann das ganze wieder Retour wandeln. 
Mit mehr als 4 bis 6 Taster würde ich das aber wegen dem Störabstand 
nicht machen. Natürlich kann man dann auch mehrere gleichzeitig 
gedrückte Tasten auswerten.

   Wiesi
Persönliche Seite #520893
Lesenswert?

Ich habe sowas auch mal mit einem Spannungsteiler am AD-Wandler-Pin 
gemacht. Einer der Widerstände besteht aus mehreren Teilwiderständen, 
die jeweils von einem Taster kurzgeschlossen werden. Anhand einer 
Wertetabelle kann man dann dem Spannungswert die gedrückten Taster 
zuordnen. Eine Entprellung ist danach genauso wie beim herkömmlichen 
Anschluss der Taster möglich.

Gruß,
Roland

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren