Estoy usando el microcontrolador msp430g2553 y un teclado 4x4 HC543. Estoy usando Energia IDE. He conectado el teclado desde el pin 2 al 9 . Mi código es el siguiente:
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6, 7, 8, 9}; //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){
Serial.println(key);
}
}
Sin embargo, no puedo obtener una salida en el Serial Monitor . Estoy especialmente confundido si estoy usando la configuración de pin correcta.
Descargué la biblioteca Keypad.h del sitio web de Arduino y la importé en Energia. Puede ser esto un problema? Dado que todas las funciones (como makeKeymap y getKey) relacionadas con Keypad.h están coloreadas correctamente.
¿Podrías probar esto?
byte filaPins[ROWS] = {6, 7, 8, 9}; //conectar a los pinouts de fila del teclado byte colPins[COLS] = {2, 3, 4, 5}; //conectar a los pinouts de la columna del teclado
vicatcu
Serial.println("Hello World");
despuésSerial.begin(9600);
solo para asegurarse de que no esté relacionado con su código.vicatcu
if (key != NO_KEY)
en lugar deif(key)
Ligeramente anotado