lunes, 16 de marzo de 2009

Arduino + Sparkfun Keypad 4x3

- SparkFun Keypad 4x3

Sparkfun Keypad


Para hacer funcionar este keypad con Arduino hay que realizar una serie de modificaciones en la libreria (ver descarga al final del post), ya que este modelo de keypad usa un pineado no standard, ademas aprovechando las caracteristicas del microcontrolador Atmel168 usaremos los "pull-ups" internos para ahorrarnos un par de resistencias en las entradas. Ver el enlace sobre sobre DigitalPins en arduino mas abajo para leer mas sobre los "pull-ups".

Editar el archivo "keypad.cpp"

- Cambiar los defines:

#define COL0    6
#define COL1    5
#define COL2    4
#define COL3    7
#define ROW0    3
#define ROW1    2
#define ROW2    1
#define ROW3    0


- Por los siguientes:
#define COL0      11  // #05
#define COL1      12  // #01
#define COL2      13  // #03
#define COL3      5   // not used as this is a 3 Col x 4 Row keypad
#define ROW0      7  // #02
#define ROW1      8  // #07
#define ROW2      9  // #06
#define ROW3      10  // #04




Editar el archivo "keypad.cpp"
Seccion original "solo funcion init"):
void keypad::init ()
{
for (int c=0; c<num_cols; c++)
{
pinMode(col[c],OUTPUT);                        // Set column pins as outputs for writing
digitalWrite(col[c],HIGH);                  // Make all columns inactive to start with.
}
col_select = 0;                                    // Start with the first column.
}

New: "añadir el texto marcado en rojo"
void keypad::init ()
{
for (int c=0; c<num_cols; c++)
{
pinMode(col[c],OUTPUT);                        // Set column pins as outputs for writing
digitalWrite(col[c],HIGH);                  // Make all columns inactive to start with.
}

for (int r=0; r<num_rows; r++)
{
digitalWrite(row[r],HIGH);                  // Make all rows turn on pullup resistor.
}

col_select = 0;                                    // Start with the first column.
}


- Una vez hecho las modificaciones y subido el programa al Arduino procedemos a conectar los pines como lo siguiente:


Row0 = keypad pin 2 -> Arduino pin 7
Row1 = keypad pin 7 -> Arduino pin 8
Row2 = keypad pin 6 -> Arduino pin 9
Row3 = keypad pin 4 -> Arduino pin 10
Col0 = keypad pin 3 -> Arduino pin 11
Col1 = keypad pin 1 -> Arduino pin 12
Col2 = keypad pin 5 -> Arduino pin 13


- Una vez ejecutandose en el Arduino debemos ver los numeros pulsados en el "serial-monitor" del IDE del Arduino

- Finalmente el resultado se veria asi (el video no esta sincronizado lo se)




Libreria: http://www.arduino.cc/playground/uploads/Main/matrixKeypad.zip
Referencias:
  

  • http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1209003950/0




  •   

  • http://www.arduino.cc/en/Tutorial/DigitalPins




  •   

  • http://www.arduino.cc/playground/Main/KeypadTutorial




  •   

  • http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235495599/0#0
  • No hay comentarios :

    Publicar un comentario