Matrix-Tastatur. Geht das so?

Gast #116069
Lesenswert?

Habe mir gerade Gedanken gemacht, wie ich eine 4x3 Matrix-Tastatur an
meinen AtMega8 anschließen kann.Hatte dabei, die im Anhang befindliche
Idee, mit jeder verschiedenen Taste eine andere Spannung zu erzeugen,
die dann über einen Addierer auf den A/D-Wandler zu "jagen".
Die Frage ist jetzt ob das überhaupt prinzipiell möglich ist, oder ob
ich die Idee verwerfen sollte?
Was haltet ihr davon?
(Die Widerstands- und Spannungswerte hab ich einfach ohne Überlegung
frei gewählt.Also keine Bedeutung)
Angehängte Dateien:
Gast #116070
Lesenswert?

Wenn Du dafür sorgst, dass jede Taste wirklich eine andere Spannung
erzeugt sollte das gehen!
Alternativvorschlag :
16 gleiche Widerstände in Reihe zwischen +5V und Masse.
An jeder Anzapfung eine Taste zum A/D-Wandler.
Gast #116071
Lesenswert?

Hi,

wenn du mehrere Tasten gleichzeitig erkennen willst, solltest du die
Spannungsstufen so wählen, dass jeder Schalter einer Potenz von zwei
erzeugt. Wichtig ist sicherlich auch, weit genug von der
Auflösungsgrenze des Wandlers wegzukommen, um Fehlerkennungen
auszuschliessen.

Viele Grüße
Gast #116073
Lesenswert?

Die OP-Beschaltung ist auch nicht korrekt, fällt mir gerade auf.
Pin 2 und 3 vertauschen würde schon helfen, aber eine negative
Ausgangsspannung erzeugen.
Deshalb Pin 3 dann auf einen Spannungsteiler und nicht auf GND.
Gast #116075
Lesenswert?

Also ich würde zum Auslesen Schieberegister verwenden. Damit kann man
auch mehrere Tasten gleichzeitig drücken und man braucht den ADC
nicht.
Du kannst dir die Schieberegister natürlich auch sparen und die 7
Anschlüsse direkt an den uC anschliessen. Belegt dann halt 7 IO Ports.
Wofür die völlig unnötige Umwandlung in eine analoge Spannung?

Auslesen geht so:
Du legst High auf eine der 4 Zeilen. Die anderen 3 auf Low. Dann Liest
du die 3 Spalten aus um zu sehen welche High sind.
Damit hast du schon mal sämtliche Tasten der 1. Zeile ausgelesen.
Das wiederholst du mit den anderen drei Zeilen.
Gast #116077
Lesenswert?

Wie wärs denn mit der Schaltung im Anhang und folgenden Werten ?


R1 = 1,8K
R2 = 560
R3 = 12K
R4 = 1,8K
R5 = 2,7K
R6 = 1K
R7 = 6,8K
R8 = 4,7K
R9 = 2,7K


Die Benutze ich immer wenn ich knapp an Ports bin und nen nen
AD-Eingang übrig habe uuuuuund die Zuleitung nicht kritisch ist
(Einstreuung usw. aber da kann man ja auch noch was tricksen)


Mit dieser Einteilung der Werte geht einiges.
Angehängte Dateien:
Gast #116078
Lesenswert?

@Sebastian
Wenn man 2 Taster drückt addiert der OP die 2 Spannungen. Also müsste
es funktionieren. Die Widerstände muss man natürlich so wählen das es
keine Überschneidungen gibt!

@Stefan
Ich will keine 7 pins für ne "doofe" Tastatur verschwenden. Und mal
ausprobieren ob es auch anders geht!


.
Gast #116079
Lesenswert?

Du hast aber 12 Tasten. Damit hast du 2^12 mögliche Kombinationen. Aber
nur einen 10bit Wandler, der nur 2^10 verschiedene Zustände
unterscheiden kann.
Da kannst du wohl doch nicht mehrere Tasten gleichzeitig drücken.

Also ich bin immer noch für die Schieberegister.
Gast #116081
Lesenswert?

@Stefan


<Du hast aber 12 Tasten. Damit hast du 2^12 mögliche Kombinationen.
<Aber
<nur einen 10bit Wandler, der nur 2^10 verschiedene Zustände
<unterscheiden kann.
<Da kannst du wohl doch nicht mehrere Tasten gleichzeitig drücken.


2^12
2^10

Is alles richtig was du sagst aber ich frage mich wieviele Finger du
hast ?

Ich habe nur 10 und ich habe maximal 4 gleichzeitig auf der Tastatur
hängen  ;);)
Gast #116083
Lesenswert?

@Stefan

Damit das nicht falsch verstanden wird.


Ich wollte nur dazu anregen das Ganze nicht so absolut zu sehen.

Ich glaube das die Variante da oben auch für die meisten fälle
ausreichend sein sollte.

In meinem Falle nutze ich die angegebene Kombination schon ne ganze
weile und mit den angegebenen Widerstandswerten sind 2 gleichzeitig
gedrückte Tasten mit ausreichender sicherheit identifizierbar was auch
Spezielle Tastenkombinationen ermöglicht.


Eine andere Variante ,die mit wenigen Ports auskommt ist die Version
einer normalen Matrix über I2C die auch in einer Appnote verbaut ist.

Allerdings kostet es dann auch einwenig mehr aber man kann dann auch
gleich mehrere Tastenfelder kombinieren.



Der vollständigkeit halber ist auch die Variante mit Scheiberegister
gut brauchbar.


Muß halt jeder selber wissen was er nehmen will.



Sollte also alles nur mal zum nachdenken anregen.

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