Hola, soy yo otra vez jaja, estoy teniendo otro problemita, yo quiero que en el lcd de 16x2 con el modulo i2c pueda aparecer:
"Clave: "
Y despues de eso con un teclado matricial 4x3 puedas escribir una clave de 4 digitos, y mi problema es el siguiente, al ir a la programación funciona todo bien a excepcion de que cuando pulso el segundo digito reemplaza el primero y no lo pone al lado, les adjunto el codigo:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27,16,2); // seteo la direccion del lcd 0x27 y la cantidad de filas y columnas
const byte filas = 4; //Numero de filas del teclado
const byte columnas = 3; //Numero de columnas del teclado
//Defino una matriz 4x3 con la posicion de las filas y columnas
char matriz[filas][columnas] =
{
{ '1', '2', '3'},
{ '4', '5', '6'},
{ '7', '8', '9'},
{ '*', '0', '#'},
};
byte pinesFilas[filas] = {36, 37, 38, 39}; //Pines donde van conectadas las filas del teclado
byte pinesColumnas[columnas] = {40, 41, 42}; //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 teclado = Keypad( makeKeymap(matriz), pinesFilas, pinesColumnas, filas, columnas);
void setup()
{
lcd.init(); // inicia el lcd
lcd.backlight();
Serial.begin(9600);
}
void loop()
{
int x = 7;
int cont = 0;
char tecla_presionada = teclado.getKey(); //Almaceno en una variable la tecla presionada
lcd.setCursor(0,0);
lcd.print("Clave: ");
if (tecla_presionada)
{
Serial.println(tecla_presionada); //Muestra la tecla presionada en el monitor serie
x++;
lcd.setCursor(x,0);
lcd.write(tecla_presionada);
}
{
// when characters arrive over the serial port...
if (Serial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// read all the available characters
while (Serial.available() > 0) {
// display each character to the LCD
lcd.write(Serial.read());
}
}
}
}
se agradece su ayuda, me estoy volviendo loco jajaja