websitetemplate.org

Hjem > Arduino Duemilanove > 3x4 KeyPad

3x4 KeyPad


Jeg har købt en KeyPad ved Let-elektronik.
http://www.let-elektronik.dk

Jeg vil helst bruge de biblioteker, der ligger i Arduino verdenen.
Denne gang har jeg dog hentet et fra Playground.
http://www.arduino.cc/playground/Code/Keypad

Det ligger et datablad på Let-elektronik med et eksempel.
Det kan godt betale sig at starte der, så havde jeg ikke behøvet selv,
at finde COL og ROWS sammenhængen.


I eksemplet bytter de rund på rækkefølgen i ledningerne.
Det er så ikke særlig smart, hvis man bruger et stykke fladkabel.
Med fladkabel har jeg nemlig
Keypad = Arduino
1 = 2
2 = 3
3 = 4
4 = 5
5 = 6
6 = 7
7 = 8

Det betyder så at jeg bytter dem i softwaren i stedet.

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','#'}  //  * og # er byttet
};
byte rowPins[ROWS] = {3, 8, 7, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {4, 2, 6}; //connect to the column pinouts of the keypad

Så virker det hele ;-)

Her er hele sovsen:
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

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] = {3, 8, 7, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {4, 2, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
}
 
void loop(){
  char key = keypad.getKey();
 
  if (key != NO_KEY){
    Serial.println(key);
  }
}

Powered By CMSimple.dk - Design By OZ5HZ Finn Johansen