hola amigos del foro, tengo un inconveniente que parece muy raro para mi punto de vista de entender y no le he encontrado solucion por ningun lado, he leido miles de cosas y probado pero el problema persiste
el primero es que conecto un teclado matricial de 4x4 al arduino pro mini en los pines 2 al 9,
comence por capturar la tecla pulsada y mostrarlo en el monitor serie, algo basico pero resulta que los datos que recibe el monitor serie son cuadraditos en grupos de 3 (como si fueran simbolos no reconocidos)
dejo adjunto imagen del teclado
el segundo problema es que el display lcd con sus coneccions RS, EN, D4, D5, D6, D7 a los pines del arduino, y el RW a masa, lo coloco en los pines del 2 al 7, y cualquier cosa que quiera escribir en el display no aparece nada, solo la primer fila toda prendida, y la segunda fila apagada, obviamente sin el teclado, solo el lcd, con el teclado en los pines anteriores y el lcd en otros pines, el problema sigue persistiendo, tanto para el teclado que envia cuadraditos y el lcd con toda la primer fila prendida
probe todo lo mismo con otro arduino pro mini y es lo mismo, siguen los mismos problemas
ni el ejemplo de "hello world" que trae arduino funciona con el display
#include "Keypad.h"
#include "LiquidCrystal.h"
const byte filas = 4; //Numero de filas del teclado
const byte columnas = 4; //Numero de columnas del teclado
//Defino una matriz 4x4 con la posicion de las filas y columnas
char matriz[filas][columnas] =
{
{ '1', '2', '3', 'A'},
{ '4', '5', '6', 'B'},
{ '7', '8', '9', 'C'},
{ '*', '0', '#', 'D'},
};
byte pinesFilas[filas] = {9, 8, 7, 6}; //Pines donde van conectadas las filas del teclado
byte pinesColumnas[columnas] = {5, 4, 3, 2}; //Pines donde van conectadas las columnas del teclado
//Inicializo el teclado con el numero de filas, columnas, los pines del Arduino utilizados y la matriz
Keypad keypad = Keypad( makeKeymap(matriz), pinesFilas, pinesColumnas, filas, columnas);
LiquidCrystal lcd(10,11,12,13,14,15 );
void setup()
{
Serial.begin(9600); //Inicializo el puerto serie
lcd.begin(16,2);
lcd.clear();
lcd.print(" INYECTORA ");
lcd.setCursor(0,1);
lcd.print(" INGRESE TEMP ");
delay(1000);
}
void loop()
{
char tecla_presionada = keypad.getKey(); //Almaceno en una variable la tecla presionada
int numero;
if (tecla_presionada != NO_KEY)
{
numero = tecla_presionada - 48;
Serial.println(tecla_presionada); //Muestra la tecla presionada en el monitor serie
Serial.println(numero); //en los tres casos aparecen grupo de 3 cuadraditos
Serial.println('A');
}
}
desde ya muchas gracias por cualquier respuesta a mis problemas