Arduino: Keypad Tasten zuordnen

Wer einmal mit einem Keypad gearbeitet hat, kennt die Situation vielleicht: Man hat einige Pins, aber weiß nicht, wo man welche Pins einstecken soll. Dabei gibt es eine relativ einfach Lösung um die Zuordnung der Tasten im Code anzupassen. Man lädt sich folgenden Code in Arduino rein. Öffnet später dann den Serial Monitor und drückt eine Taste. Nun sieht man welche Taste man angezeigt bekommt. Stimmt diese nicht mit der gedrückten Taste überein, muss die Taste an der entsprechenden Stelle im „keys[ROWS][COLS]“ Array angepasst werden.
Ist man mit allen Tasten durch, lädt man den aktualisierten Code nochmal auf den Arduino und prüft erneut die Angabe.

Die Keypad Lib ist die Standardlib von Arduino. Wenn ihr irgendwann mal etwas mit dem offiziellen GSM Modul von Arduino und einem Keypad machen wollt, sei dieser Thread empfohlen. Dann sind nämlich Anpassungen an der Keypad Lib notwendig.

#include <keypad .h>
#include <stdio .h>
#include <wire .h>

//Keypad Deklaration
const byte ROWS = 4; 
const byte COLS = 4; 
char keys[ROWS][COLS] = {
  {'D','C','B','A'},
  {'#','9','6','3'},
  {'0','8','5','2'},
  {'*','7','4','1'}
};

//Keypad PINS.
byte rowPins[ROWS] = {2,3,4,5}; //connect to row pinouts 
byte colPins[COLS] = {6,7,8,9}; //connect to column pinouts
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void Keyeingabe()
{
    char key = keypad.waitForKey();    
    Serial.println(key);
}

void setup() 
{
    Serial.begin(9600); //Für Debugging notwendig.
    
}

void loop() 
{   
    Keyeingabe();
}
</wire></stdio></keypad>

//Hinweis: Wegen HTML muss die letzte Zeile und die #include Zeilen beim Kopieren angepasst werden. Der Code zeigt aber schon mal schön, wie es funktioniert. :)