PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastenfeld !?!



kl_prinz
04.03.2006, 18:54
Hallo zusammen!
Ich hab mir heute bei Conrad die (http://www.produktinfo.conrad.com/datenblaetter/700000-724999/709930-da-01-de-Folientastatur_Matrix_3_4.pdf) Matrixtastatur gekauft. Die Tastatur soll einen Mikrocontroller angeschlossen werden. Um Ports an diesem zu sparen hab ich eben diese Tastatur gekauft, da weniger Ports gebraucht werden. Allerdings verstehe ich das System nicht, wie er Mikrocontroller merken soll, dass beispielsweise sw1 gedrückt wird. Was ich weiss, ist das beim Betätigen der Pin 1 und Pin 7 kurzgeschlossen werden (siehe Link zum Datenblatt)... aber was hab ich vom Kurzschliessen der beiden Pins???

Vielen Dank an Euch, die mir bei meiner Denkblokade helfen.

tml
04.03.2006, 19:04
Vielleicht hilft das schonmal: http://www.mezmedia.de/avr/05-04-02_matrixtastatur/index.html

chr-mt
04.03.2006, 19:19
Hi,
Du kannst die Spalten immer durchschalten.
Also Spalten als Output und Zeilen als Input.
Also erst auf die erste Spalte eine 1 legen und dann gucken, ob an den Zeilenanschlüssen was anliegt, also eine Taste gedrückt wurde.
Dann Zeile 2 etc. usw.

Du kannst die Spalten auch alle auf High setzen und dann warten bis an den Zeileneingängen was anliegt und dann die Abfrage starten.

Falls du mit Bascom arbeitest, guck' dir aber erst mal die Befehle GETKBD() / CONFIG KBD an.
Bei Bascom gibt's die Matrixtastaturabfrage nämlich schon fertig.

Gruß
Christopher

kl_prinz
04.03.2006, 19:19
Hi tml,
da wäre ich ja nie von allein darauf gekommen...
vielen Dank

tml
04.03.2006, 19:23
Das is das schoene an Bascom da gibts alles fertig, es versteht nur keiner wies funktioniert und der is dann eben aufgeschmissen, wenn er mal kein Bascom hat... Aber man erreicht eben die schnellsten ergebnisse.

chr-mt
04.03.2006, 19:34
es versteht nur keiner wies funktioniert und der is dann eben aufgeschmissen, wenn er mal kein Bascom hat...
Altes Vorurteil gegen Basic Programmierer..
Auch Bascom User lesen Datenblätter etc.
Wieso kommen Leute eigentlich darauf, daß Bascom Programmierer nicht wissen, wie was funktioniert ?

Aber man erreicht eben die schnellsten ergebnisse.
Deshalb nehmen auch Leute, die wissen wie's geht, gerne Bascom.
Wenn's nötig ist, kann man auch in Bascom jede Hardware ansprechen.
10X6 Matrixtastaturen werden zB. von Bascom nicht unterstützt.
Deshalb musste ich das letztens eben selber machen.
Aber wenn's kleiner wäre, würde ich die Bascom Funktion nehmen.
Warum soll man sich das Leben schwerer machen als nötig ;)

Gruß
Christopher

tml
04.03.2006, 19:44
Na ja ok, ich hab auch nicht viel gegen bascom, habs sogar auf meinem Rechner. Aber wenn man einfach getrc5 eigeben kann, um eine IR-Fernbedienug auszulesen, dann glaub ich kaum das derjenige genau weiß, wie das geht, oder?
Die andere Seite ist natuerlich, ob man das ueberhaupt wissen muss und ich finde das sollte man schon, aber das muss jeder selber wissen... :-)

chr-mt
04.03.2006, 19:51
Die andere Seite ist natuerlich, ob man das ueberhaupt wissen muss und ich finde das sollte man schon
Finde ich auch. So ganz blind sollte man nicht rangehen.
Aber irgendwann stößt man, wie du schon sagtest, an Grenzen der Bascom Funktionen. (oder wie in meinem Fall der unterstützen Chips)
Spätestens dann muß man sich natürlich eigene Gedanken über die Funktion der angeschlossenen Hardware machen.

Gruß
Christopher

Dirk
04.03.2006, 20:20
Hallo kl_prinz,


Ich hab mir heute bei Conrad die ... Matrixtastatur gekauft. Die Tastatur soll einen Mikrocontroller angeschlossen werden. Um Ports an diesem zu sparen hab ich eben diese Tastatur gekauft, da weniger Ports gebraucht werden.

Wenn du nur wenige Ports verbraten willst, könntest du doch die Matrixtastatur auch an einen A/D-Wandler-Eingang anschließen. Damit ist nur ein Port belegt.
Bei mir läuft eine 16-Tasten-Matrix so ohne Probleme.

Gruß Dirk

ManniMammut
04.03.2006, 21:45
@Dirk zu dem A/D-Wandler: Jede Taste über nen eigenen Widerstand, oder wie? Das selbe habe ich mir nämlich neulich auch überlegt :-)

Thx, Manni

Lunarman
04.03.2006, 22:07
Es funzt ja auch, aber nur mit 1%igen. Asuro, RN-Control...

Dirk
04.03.2006, 22:41
Hallo Manni,


... zu dem A/D-Wandler: Jede Taste über nen eigenen Widerstand, oder wie? Das selbe habe ich mir nämlich neulich auch überlegt

Ja, genau.

Gruß Dirk

Z.B. so:

Ratber
05.03.2006, 06:12
Das is das schoene an Bascom da gibts alles fertig, es versteht nur keiner wies funktioniert und der is dann eben aufgeschmissen, wenn er mal kein Bascom hat... Aber man erreicht eben die schnellsten ergebnisse.


Nun wer zu faul oder zu dämlich ist an diesem Punkt selber zu lernen der wird mit Assembler erst recht nicht umgehen können.

bernhard1366
05.03.2006, 11:33
Hi Dirk

Dass mit der Tastatur an nur einem port interessiert micht auch, denn ich hab auch meisten zu wenig ports frei!

Die funktion mit dem A/D eingang ist ja verständlich, aber was wenn ich aus versehn oder so zwei Tasten geichzeitig drücke? Muss ich da einfach die priorität der ersten Taste auswerten??

mfg.
Bernhard

Dirk
05.03.2006, 12:02
Hallo Bernhard,

die Schaltung kann nur jeweils 1 Taste gleichzeitig auswerten. Wenn man 2 oder mehr drückt, kann aber auch nichts passieren.

Gruß Dirk

tml
06.03.2006, 14:46
Du kannst auch die Spannungen ausrechnen, die auftreten wenn du wegen mir die erste und die zweite Taste gleichzeitig drueckst und guckst, ob du damit weiterkommst. Fraglich is nur ob der DAC das so gut aufloesen kann....

Dirk
06.03.2006, 17:56
Hallo tml,


Du kannst auch die Spannungen ausrechnen, die auftreten wenn du wegen mir die erste und die zweite Taste gleichzeitig drueckst und guckst, ob du damit weiterkommst.
Na klar! Was meinst du, wie ich die Widerstände ausgerechnet habe.
Du kannst natürlich auch für jede 2-er Kombination, die du gleichzeitig drückst, einen Spannungswert errechnen.
Allerdings wird das dann tatsächlich mit der Auflösung etwas schwierig und es wird auch Doppelungen geben.

So wie da angegeben, ist die Spreizung ganz gut (1,0..4,5 Volt) und die Auflösung liegt im unteren Bereich mit mind. 13 Digits (10 Bit ADC) ganz passabel.

Gruß Dirk