Keypad des Wahnsinns: 1,2,5x Keypad 3x4

Hi

Ich habe ein neues Keypad und verwende Keypad.h zum ansteuern.

Der Code sieht so aus:
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[ROWS] = {30, 34, 32, 28}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {26, 22, 24}; //connect to the column pinouts of the keypad

Mein Problem (mangels Doku): Es funktionieren scheinbar nur einige Tasten. Hier das Layout was funktoniert und was nicht (X für kein Resultat)

X X 3
4 5 X
6 7 X

  • 0 X

Was läuft falsch ? Wiring oder coding ?

Danke vielmals
Mike

MikeLimaZulu:
.....
Mein Problem (mangels Doku): Es funktionieren scheinbar nur einige Tasten. Hier das Layout was funktoniert und was nicht (X für kein Resultat)
.....

Warum misst du das Keypad nicht vorher mit einem Ohmmeter durch ?
Dann siehst du doch welche Taste wann geschlossen ist.

Meiner Ansicht hast Du das Tastaturfeld falsch oder an falschen Pins angeschlossen.
Grüße Uwe

Was läuft falsch ? Wiring oder coding ?

Tja....
Da du beides nicht zeigst...

Das Wiring gar nicht, und den Code bis zu Untestbarkeit verstümmelt.

MikeLimaZulu:
byte colPins[COLS] = {26, 22, 24}; //connect to the column pinouts of the keypad

Wenn ich solche Codezeilen sehe, frage ich mich, wie so seltsame Anschlussreihenfolgen zustande kommen. Einziger Einfall: Das ist Zeug, das mal jemand von jemandes Zeug kopiert hat, der mal Zeug kopiert hat. Dann hat es nochmal jemand kopiert. Und dann nochmal.

Um ein dermaßen einfaches Gitter auszuwerten (nicht „ansteuern“) benötigt man keine Bibliothek. Es sei denn, man hat Bock darauf, eine Bibliothek einzusetzen.

Gruß

Gregor

gregorss:
Wenn ich solche Codezeilen sehe, frage ich mich, wie so seltsame Anschlussreihenfolgen zustande kommen.

man kann raten.
Es ist ein Mega, und er schließt halt 3 Pins der Reihe nach an.

belustigend finde ich eher wie oft man 3 Reihen in einem Code schreiben kann

const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};

byte colPins[COLS] = {26, 22, 24}; //connect to the column pinouts of the keypad

viel spaß beim umbauen auf 4x4

viel spaß beim umbauen auf 4x4

Der Umbau ist trivial.

Na herzlichen Dank für den Sarkasmus. Da fühl ich mich gleich besser..
Ja, ich hab die Codezeile #include <keypad.h> vergessen anzugeben. War wohl schwer zu erraten.

Ja, es ist kopierter Code. So fangen die meisten mal an und die Comments sind nicht von mir.

Die komischen Zahlenfolgen kommen entstehen durch ausprobieren: Sie ergeben zumindest korrekte Angaben bei den Tasten (wie oben angegeben).

Mehr Angaben in Kürze

MikeLimaZulu:
Ja, es ist kopierter Code. So fangen die meisten mal an und die Comments sind nicht von mir.

Ich hatte das nicht „gegen Dich“ gemeint.

Dass ein Anfänger mit kopiertem Code arbeitet ist für sich ja okay. Ich würde nur z. B. die Pins 23,24,25 benutzen und nicht irgendeine überkreuz-oder-sonstwie-Reihenfolge.

Gruß

Gregor

Und....schon mal das Pad gemessen ?

Danke für die Nachfrage. Ich habe das Problem gelöst. Das Keypad hat eine ausgesprochen ungewöhnliche Pin-Belegung. Nach dem Motto: Col Col Row Row Col Row Row.

Und natürlich undokumentiert.

Case closed und danke
Mike