www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8 Tasten, aber nur 3 Pins


Autor: Marco Schramm (hochfrequenz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marco Schramm

>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.

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

Nein.

http://www.mikrocontroller.net/articles/Porterweit...

MFG
Falk

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marco Schramm wrote:

> Da gibt es doch bestimmt eine "Standardlösung" dafür?

Ja, 74HC165.

> Wird allerdings
> eng mit nur 3 Pins, oder?

Nein, 3 reichen.


Peter

Autor: Frank Huber (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wiesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für 7 Tasten täte es auch ein Prioritätsencoder 74HC147 oder 148, ab 8 
sind es 4 Leitungen

Autor: Wiesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christoph Kessler

"Gleichzeitiges Drücken mehrere Tasten muß möglich sein."

Wiesi

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...oder 'nen I2C Porterweiterungschip (PCA95xx) an 2 Pins mit 'ner 
Soft-I2C anknoten. Vorteil: erweiterbar (falls Dir neben den Tasten noch 
was fehlt z.B. LCD - die sind eh' so lahm, dass man die ohne 
Performance-Verlust so anknoten kann).

Autor: Roland Riegel (roland) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.