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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.