Hola, tengo un teclado 4x4 y un Arduino Mega y a la hora de mostrar los numeros que oprimo en el teclado en el monitor serial no aparecen los numeros de la 1° columna.
O sea, se muestran los otros 12 pero no los de esa columna. Ya revise conexiones, medi las filas y columnas del teclado, revise el programa, busque en internet y no encuentro motivo del problema ese.
Les paso el programa:
#include <Keypad.h>
const byte filas = 4; // definimos el numero de filas que usamos
const byte columnas = 4; // idem anterior, esto se cambia segun el numero de columnas a usar en el teclado
byte pinsFilas[filas] = {22, 24, 26, 28}; // definimos el orden de conexion de las filas: Fila 1, Fila 2, Fila 3 y Fila 4
byte pinsColumnas[columnas] = {30, 32, 34, 36}; // definimos el orden de conexion de las columnas: Columna 1, Columna 2, Columna 3 y Columna 4
char teclas[filas][columnas] = { // con "char" creamos la matriz teclas para definir el orden de los caracteres tal cual en el teclado
{'7','8','9','F6'},
{'4','5','6','F5'},
{'1','2','3','F4'},
{'0','F1','F2','F3'},
};
Keypad teclado = Keypad(makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas);
// aca mapeamos o leemos la cantidad de filas y columnas y los pines donde estan conectados
char tecla; // creamos la variable tecla para usar caracteres en ella
int numero; //creamos la variable numero para convertir el valor ASCII en valor numerico
void setup() {
Serial.begin(9600); // activamos la comunicacion serial
}
void loop() {
tecla = teclado.getKey(); // leemos el valor de la tecla oprimida del teclado y la guardamos en tecla
if(tecla != NO_KEY) { // si el valor de tecla es distinto a no haberla oprimido
numero = tecla - 48;
Serial.println(numero); // mostrar via serial el valor de tecla
}
}
Si postee mal, disculpenme por no hacerlo como se debe, pasa que todavia no estoy canchero en el foro.
Agradezco cualquier ayuda por adelantado.
Editado:
El código debe de ser presentado como dicen la reglas del foro.