PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Folientastatur an CC1 M-Unit



Jabberwocki
13.01.2004, 11:30
Hallo

Betreibe an meiner CC1 M-Unit momentan eine Folientastatur an AD8(mit Spannungsteilerschaltung). Jetzt hab ich ne neue Tastatur bekommen wo nur noch 7 Anschlüsse sind (statt 13 wie bei der von Conrad).
Ich kann mich dunkel erinnern das es ne Möglichkeit gab mit sogenannten High und Low-Nibbles die Folientastatur auszulesen.
Also wie schließ ich High und Low Nibbles an(PullUps/Downs ??) und hat jemand ein Quellcodebeispiel dazu oder n Link zu ner Seite wo das so gelöst wurde.
Vielen Dank im voraus

MfG :lol:

CityJumper
13.01.2004, 11:55
ich galube du wirst ein ganz anderes problem haben,
die anschlüsse deiner tastatur sind warscheinlich die ein schachbrett aufgebaut

pin1--|--|--|
pin2--|--|--|
pin3--|--|--|
pin4--|--|--|
5 6 7

d.h bei drücken der teste 1 ensteht eine verbindung zwischen p1 und p5,
ebentuell köntest du auch das mit einer wiederstandsschaltung lösen.

ansonsten must du jeden port einzenld ansteuern und auslesen.
wenn keiner eine andere idee hat, kann ich die (wenn ich am we zeit habe) einen kleinen schaltplan machen.

mfg
michael

Jabberwocki
13.01.2004, 12:06
Hi Michael

Hab nen Quellcode gefunden der's offensichtlich so macht wie ich es mir dachte. Allerdings fehlt mir noch ne Info zum Anschluss(PullUps/Downs), d. h. dein Angebot fürn kleinen Schaltplan klingt verlockend.
Ums gleich mit dem Quellcode zu verbinden, brauch ich an den Zeilen oder Spalten irgendwelche Widerstände oder gehts auch ohne ?

' Matrix Tastatur
' 1 2 3
' 4 5 6
' 7 8 9
' * 0 #
...
define Zeile_1 Port[1]
define Zeile_2 Port[2]
define Zeile_3 Port[3]
define Zeile_4 Port[4]
define Spalte_A Port[5]
define Spalte_B Port[6]
define Spalte_C Port[7]
...
#Tastatur
Zeile_1 = OFF
Daten = 99
if Spalte_A = OFF then Daten = 1
if Spalte_B = OFF then Daten = 2
if Spalte_C = OFF then Daten = 3
gosub Auswertung
Zeile_1 = ON
Zeile_2 = OFF
Daten = 99
if Spalte_A = OFF then Daten = 4
if Spalte_B = OFF then Daten = 5
if Spalte_C = OFF then Daten = 6
gosub Auswertung
Zeile_2 = ON
Zeile_3 = OFF
Daten = 99
if Spalte_A = OFF then Daten = 7
if Spalte_B = OFF then Daten = 8
if Spalte_C = OFF then Daten = 9
gosub Auswertung
Zeile_3 = ON
Zeile_4 = OFF
Daten = 99
if Spalte_A = OFF then Daten = 10
if Spalte_B = OFF then Daten = 0
if Spalte_C = OFF then Daten = 20
gosub Auswertung
Zeile_4 = ON
goto Tastatur

#Auswertung
wait Spalte_A = ON and Spalte_B = ON and Spalte_C = ON
Pause 2
if Daten = 99 then Return
goto Daten_Code_pruefen


MfG :lol:

13.01.2004, 12:57
Ein einfacher analoger Port reicht aus. Auch bei der Matrix-Tastatur! Man braucht nur 3 Wiederstände bei Spalte und 4 bei Zeile und vielleicht noch einen als Spannungsteiler. Man muss nur sinnvolle Werte finden.

CityJumper
13.01.2004, 21:04
entwerder machst du es so wie in dem basic beispiel, und verwendest 7 normale ports, oder nu must jede reuhe und jede spate mit einem spezifischen wiederstand versehen, die so gewählt werden müssen, das keine werte doppelt vorhanden sind.

eine beschaltung mit wiederständen habe ich heute morgen mal irgenwo über google gesehen, must du mal suchen.

ps: das ist jetzt mein 50. post :D

mfg
michael

Matthias
13.01.2004, 21:20
Du musst einfach einen port mit nem wiederstand belegen. den nächsten mit dem doppelten, den darauf folgenden mit dem wiederum doppelten... Dann nurnoch nen pull-down als Gegenstück zum spannungsteiler. Du musst die wiederstände natürlich günstig definieren.

Matthias