Siehe Anhang!
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
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
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
Man sollte die App Notes von Atmel mal genauer anschauen. Da gibt es einige interessante Sachen.
Du kannst auch alle Tasten gleichzeitig drücken, ich sehe nicht wo es da Probleme geben sollte. Gruß Andreas
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
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
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.
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.
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.
Gut dass wir das nach 7 Jahren endlich klären konnten ;) Wurde aber schon erwähnt, siehe Beitrag vom 13.09.2003 01:53.
Beitrag #6135125 wurde von einem Moderator gelöscht.
Beitrag #6135127 wurde von einem Moderator gelöscht.
Beitrag #6135129 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.