mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Tastatur (Schalter)-Matrix


Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe eine 4*8 Tastatur bzw. Schalter_Matrix aufgebaut und frage 
diese mit mit einem ATmega16 ab. Einzellne Taster oder mehrere innerhalb 
einer Zeile oder einer Spalte funktionieren einwandfrei.
Halte ich aber Taster einer Spalte UND einer Zeile gedrückt entstehen 
neue physikalische Verbindungen die ich nicht wollte!
Hat eine ne Idee wie ich das Problem lösen kann, ohne jeden Taster 
separat an einen Pin des Controllers anzuschließen?

Danke schon mal

Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In einer einfachen Matrix können nur bis zu 2 Tasten gleichzeitg erkannt 
werden.

Bei 3 oder mehr gedrückten Tasten kann es zu Phantomtasten kommen.
Dann muß man zu jeder Taste eine Diode in Reihe schalten.


Peter

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind dann alle möglichen kombinationen möglich?
zb. 5 unterschiedliche Tasten sind gedrückt und eine 6. kommt hinzu.
wird die dann erkannt?
hast du einen Schaltplan so dass ich die Kombinationen durchgehen kann?
Danke!!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab keinen Schaltplan.

Einfach eine Diode in Reihe zu jeder Taste in Durchlaßrichtung.

Phantomtasten entstehen, wenn der Strom entgegengesetzt durch die Taste 
fließen kann.


Peter

Autor: Sajuuk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder die Software umschreiben, so das immer nur die Taste ausgewertet 
wird die zuerst erkannt wird.(bzw. die ersten zwei)

Es gibt auch Taster die die Diode bereits integriert haben.

Autor: S. H. (fat32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ peter: programmiest du mit basic? wenn ja, kannst du mal deinen code 
posten?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon Hat einen nick wrote:
> @ peter: programmiest du mit basic?

Nein, in C.
Das Codebeispiel hast Du doch schon gesehen.


Peter

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Tip mit den Dioden für jeden taster!!
Jetzt muss ich zwar umlayouten, aber die Abfrage ist eindeutig auch bei 
gleichzeitigem betätigen mehrerer Tasten.

Danke!! und schönes Wochenende

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ehe man dem Benutzer eine Dreifachbetätigung (Affengriff) aufnötigt, 
sollte man besser erstmal versuchen, das Bedienkonzept zu ändern.

Bei PC-Tastaturen sind auch keine Dioden drin, da werden die 
Steuertasten  (Shift, Ctrl, Alt) direkt abgefragt. Affengriffe nur aus 3 
Zeichen sind also nicht möglich.


Peter

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Peter Dannegger

>Bei PC-Tastaturen sind auch keine Dioden drin, da werden die
>Steuertasten  (Shift, Ctrl, Alt) direkt abgefragt. Affengriffe nur aus 3
>Zeichen sind also nicht möglich.

Hmm, aber eine PC-Tastatur kann AFAIK alle Tasten individuell erkennen. 
Wie macht die das? Eine Matrix ist da ja auch drin. Vielleicht sind die 
Gummimatten die Dioden?

MfG
Falk

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.