Error Arduino pro mini + keypad + lcd16x2

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

te aparecen grupos de tres cuadraditos, el primero es el caracter en si, y los otros dos son el salto de linea y el retorno de carro,

Estas seguro que tienes configurado el Ide en 9600 como se ve en esta foto:

hola, muchas gracias por tu pronta respuesta, sisi esta en 9600 baudios la configuracion del monitor serie

Edita por favor un primer hilo de acuerdo a las normas.
MIra en tu casilla privada las instrucciones.

Hi,
Tu dices que usas los pines "teclado matricial de 4x4 al arduino pro mini en los pines 2 al 9" y tambien dices que usas los pines " 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". Si yo lo entiendo bien entoces tienes el keypad y LCD usando los mismos pines? Esto es correcto si o no?. Puede ser que lo estoy entendiendo mal.

hola tauro, no no tengo el lcd y el teclado en los mismos pines, lo que quise decir es que el arduino con el teclado solo en los pines 2 al 9 no funciona correctamente, luego probe el arduino con el lcd solo en los pines 2 al 7 y tampoco funciona correctamente, despues probe el arduino con el teclado en los pines 2 al 9 y el lcd en los pines 10 al 15 y siguen funcionando igual de la misma manera, sea cual sea el pin en los que estan conectados, el teclado sigue enviando cuadraditos y el lcd prende de la misma forma sin hacer nada
espero haberme explicado mejor ahora
gracias

Es un Pro MINI de 3.3 o 5V?

estoy casi seguro que es de 5v, pero en la parte de abajo de la placa dice 8Mhz 16Mhz 20Mhz 3V3 5V, cuando lo programe elegi procesador atmega 328 (5V, 16Mhz)

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

Ok. Vamos a algo mas básico.

Vamos a verificar que las salidas funcionan.
Sabes definir los pines como salidas y ponerlos en HIGH y medir su tension de salida?

empieza por ahi.
Define todos los que estas usando 2 al 7 o mas como salida y midelos.

me quedo en duda tu pregunta del voltaje, y fui por una lupa y en el regulador de voltaje tiene un codigo S2PJ y el crystal dice 80 asi q supongo 8Mhz,
los pines se define como

pinMode(pin, OUTPUT);

y ponerlos en HIGH seria

digitalWrite(pin, HIGH);

es correcto no?

Si, solo con hacerlo en el setup

void setup() {
  // configuaras del 2 al 13
  for (byte i=2; i=<13; i++) {
       pinMode(i, OUTPUT);
       digitalWrite(i, HIGH);
  }
}

void loop()
{
  
}

Muy interesante de leer, es bueno instruirse para así saber o tener algunas ideas cuando seamos quienes tengamos este tipo de problemas.

si eso funciona correctamente, voy a tratar de programarlo en el modo de 3,3v y 8mhz a ver si cambia en algo

Bueno si eso funciona correctamente, vamos a repasar cada código.
LCD primero.

usas cuál librería la que viene con el IDE?

Supongo que las conexiones no requieren que

porque en el código al lcd leo esto

LiquidCrystal lcd(10,11,12,13,14,15 );

Donde tu arduino tienes pines 14,15 etc?

DIjiste usar del 2 al 7 de modo que debo ver 2 al 7, no los pines del ATmega.

si use la misma libreria que trae el IDE
probe el lcd solo en los pines 2 al 7 y funcionaba mal

cuando probe teclado y lcd, tuve que cambiar el lcd de lugar y lo puse del 10 al 13 y A0 (149 y A1 (15)
y funcionaba igual de la misma manera

por error recien de tanto probar diferentes alternativa, acabo de quemar los dos arduino mini y el lcd porque me equivoque y alimente la placa a 12v, en un rato continuo con otros nuevos

Hi,
Te sugiero que compres un "I2C Serial Interface Board Module " este te convierte los pines paralelos al formato de I2C, Esto te va a economizar varios pines pues solamente vaz a necesitas los pine A4 y A5. Puedes coprar el LCD que ya tenga incluido el interface y la diferencia en precio no es gran cosa. Ai ya comprastes el LCD ontonces solamente necsitas comprar el I2C modulo.

si eso tambien tenia pensado comprar para probar, pero tengo que pedirlo afuera porque aca no se vende nada de electronica, lo que me resulta muy raro es que ni el teclado funcione correctamente
sera algun problema con el programador, con el IDE, algun driver?
ya se me terminaron las ideas

Hi,
Aqui todavia yo tengo una duda sobre que tipo de mini pro tu tienes. En la coversacion que tuviste con surbyte acerca de determinar cual es el modulo que estas usando tu dices que el modulo tiene marcado 8mhz. Si es asi entonces automaticamente es de 3.3 voltios. Llegastes a leer el voltaje de la salida de los pines como te aconsejo surbyte y que voltaje leeistes. Si el modulo es de 16mhz entonces es de 5 voltios. Para alimentar el modulo de 8 mhz si usas el raw necesitas un voltaje de 4 a 12 voltios. Si usas el VCC necesitas 3,3 voltios. Si es de 8mhz entonces las salidas van hacer de 3.3 voltios. La pregunata hacerce es el LCD trabajara con un voltaje de 3.3 voltios en las entrads? Si conectas los pines del mini pro al LCD correctamente te debe de trabajar y no es asi. creo que tu vaz a tener que usar un LCD de 3.3 voltios. Puede ser que este equivocado pero hay LCD que trabajan con un voltaje 3,3voltios.

muchas gracias tauro por la respuesta, entonces debe ser asi como tu dices de 3,3v, en el crystal alcanzo a ver un 80 muy dificil de descifrar pero estoy casi seguro que es un 8, y lo estoy programando colocando en el ide que es de 5v y 16mhz, entonces el reloj interno del arduino debe estar haciendo cualquier cosa, y lo estaba alimentando con 5v en la pata del vcc y no en el raw y en las salidas que me indico surbyte eran de 5v
hoy pedi dos arduino nano de 5v, porque como habia comentado, por un error mio pasaron a una mejor vida