mikrocontroller.net

Forum: Projekte & Code Matrixtastatur am AVR


Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Anhang!

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Andreas,
bei der "Schaltung" fehlen noch ein paar Sperrdioden. Zu jedem Taster 
muß eine Diode in Reihe geschaltet werden. Wird das nicht gemacht kann 
es zu Fehlinterpretationen kommen wenn z.B. mehrere Tasten gleichzeitig 
gedrückt werden. Die Dioden verhindern das.

Gruß
Markus

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

Sperrdioden sind nicht nötig, da ja immer nur eine Spalte 
"ein"geschalten wird. Die anderen sind hochohmig, also so als wären die 
Taster gar nicht angeschlossen.

Gruß
Andreas

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich funktioniert es auch so, aber nur wenn sichergestellt wird das 
immer nur eine Taste gedrückt wird. Sobald mehrere Tasten gedwückt 
werden (beabsichtigt oder nicht) kann es zu Problemen kommen.

Gruß
Markus

Autor: Lanius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat Atmel auch schon mal gebastelt, siehe:

http://www.atmel.com/atmel/acrobat/doc1232.pdf

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man sollte die App Notes von Atmel mal genauer anschauen. Da gibt es 
einige interessante Sachen.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch alle Tasten gleichzeitig drücken, ich sehe nicht wo es da 
Probleme geben sollte.

Gruß
Andreas

Autor: Lanius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

die Anleitung ist auch schön und .... ohne Dioden :)


http://www.atmel.com/atmel/acrobat/doc1231.pdf

Autor: Jörg Wedermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wäre es nicht sinnvoller, den 8-Tastencode, den man ja mit 16Tasten 
nicht voll ausnutzt in einen 4bit-Code umzuwandeln, der ja mit 16 
Zuständen genau hinkommt? Nagut, man müßte auf eine Taste verzichten, 
damit Zustand 0000 als "kein Tastendruck" erkannt werden kann.
Dann könnte man einen Port für zwei Sachen nutzen. oder sehe ich da was 
falsch?
Wäre doch schö, wenn man mite der einen Port-Hälfte die Tasten einließt, 
und mit der andern ein Display im 4-bit-Modus ansteuern könnte.
Leider hab ich dafür noch keine fertige Lösung entdeckt. Es gibt 
sogenannte 10 -> BCD-Codierer, oder auch Prioritäten-Codierer genannt, 
man müßte es echt selber mit Gattern oder Dioden aufbauen.

Gruß Jörg

Autor: Jurek Skrzypnik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi !
@Jörg
ich hab mich das mit dem 16:4 Encoder auch schon gefragt...
hab aber auch nichts (irgendeinen billigen IC) gefunden.

Wenn wer so einen (in D erhältlichen) Baustein (max 2 EUR
sonst machts ein AVR auch) kennt, würde ich mich dafür interessieren,
um Ports zu sparen.

Die Steuerung wie sie Atmel in o.g. Dokument beschreibt funktioniert
bei mir ansonsten wirklich einwandfrei, aber 4 statt 8 Ports belegen,
wäre mir lieber...

Jurek

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Orginal beitrag und die Antworten darauf sind zwar schon etwas
"alt" aber Andreas hat recht. Wenn immer nur die abgefragte Spalte
(oder Zeile) aktiv und der Rest Tristate also als Eingang geschaltet
ist kann man auf die Dioden verzichten.

Was einen billigen 16:4 Encoder anbetrifft, den gibt es zum 1. nicht
und zweitens würde der zuviel Platz auf der Platine einnehmen. Dann
lieber eine Prozessor, der ein paar I/O´s mehr hat.

Steffen

PS: Der 16:4 Encoder hat mindestens 22 Pins (jede Taste einzeln) oder
14 Pins (Tastatur als Matrix). Bei der MC-Lösung brauche ich aber so
oder so nur 8 Pins.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kann bei der oben beschriebenen Tastenmatrix allerdings dazu kommen,
dass eine Taste fälschlicherweise als gedrückt erkannt wird, wenn mehr
als 2 andere Tasten gleichzeitig gedrückt sind.

Autor: iCount (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Tristate also als Eingang"?? :D
Ausgang - Eingang - Tristate..

Autor: Christian Berger (casandro) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Schwarz schrieb:
> Du kannst auch alle Tasten gleichzeitig drücken, ich sehe nicht wo es da
> Probleme geben sollte.

Naja, stell Dir mal eine Matrix mit 2 Zeilen A und B, sowie 3 Spalten X, 
Y und Z vor.

Du hast da jetzt 4 Tasten:
123
456
1 verbindet A und X
2 verbindet A und Y
3 verbindet A und Z
4 verbindet B und X
5 verbindet B und Y
6 verbindet B und Z

Jetzt drücken wir mal 1 und 4. Somit ist A und X, sowie B und X 
verbunden. Jetzt drückst Du gleichzeitig die Taste 3 und verbindest A 
und Z.

Ohne Dioden sind jetzt durch die Tasten 1 4 die Leitungen A und B 
miteinander verbunden. Es ist nun nicht mehr möglich die Taste 3 von der 
Taste 6 zu unterscheiden.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut dass wir das nach 7 Jahren endlich klären konnten ;)
Wurde aber schon erwähnt, siehe Beitrag vom 13.09.2003 01:53.

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.