Buen dia,
este es mi 1er post, espero hacer todo debidamente y cumplir con las reglas.
Estoy realizando un programa para controlar unos motores a pasos, el cual sera controlado por
los valores introducidos de un Keypad y visualizados en una pantalla LCD.
Hasta donde he avanzado el programa funciona, se deben ingresar valores desde el Keypad y seleccionar la letra "A" para Enter, "C" para clear, "D" para delete y "B" para salir de los valores previamente ingresados despues de pulsar "A".
Al pulsar "A" la pantalla dira ajustando y posteriormente debe mostrar el valor que se ingreso previamente.
Ejemplo: "El valor actual es: 48x96" y quedarse ahi hasta que se presione "B" y volver a ingresar nuevos datos.
No he encontrado una manera de mostrar los datos ingresados despues de pulsar "A".
intente guardar la variable en la memoria EEPROM pero aun asi no logro visualizarla.
Se que mis valores estan siendo borrados cuando aplico el " lcd.clear()" mas no encuentro la manera
de como evitar esto.
Agradeciera mucho si alguien tiene una idea de como lograrlo, o alguna correccion de mi codigo ya que soy un principiante.
Muchas Gracias.
PD:Anexo algunas fotos del circuito.
#include <EEPROM.h>
#include <LiquidCrystal.h>
const int rs = A0, en = A1, d4 =A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#include <Keypad.h>
const byte Filas = 4;
const byte Cols = 4;
byte Pins_Filas[] = {9, 8, 7, 6};
byte Pins_Cols[] = {5, 4, 3, 2};
char Teclas [Filas][Cols] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
Keypad Teclado = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);
char Captura;
int pos =11;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(3, 0);
lcd.write("BIENVENIDO");
lcd.setCursor(6, 1);
lcd.write("ATB");
delay(1000);
}
void loop() {
char Lectura=Teclado.getKey();
lcd.home();
lcd.write("INGRESE EL AXB");// numero de 2 digitos x 2 digitos
lcd.setCursor(0,1);
lcd.write ("DE LA HOJA:");
lcd.setCursor(11,1);
char valor=EEPROM.read(0);
if (Lectura!='A'&&Lectura!='B'&&Lectura!='C'&&Lectura!='D'&&Lectura!='#'){
Captura=Lectura;
}
if(Captura){
lcd.setCursor(pos,1);
lcd.print(Captura);
pos=pos+1;
}
switch(Lectura){
EEPROM.write(0,Captura);
case 'A':
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ajustando");
delay(1000);
while(Teclado.getKey()!='B'){
lcd.setCursor(0,0);
lcd.print("AxB ACTUAL");
lcd.setCursor(0,1);
lcd.print(valor);
}
case 'C':
lcd.clear();
pos=11;
break;
case 'D':
pos=pos-1;
lcd.setCursor(pos,1);
lcd.print(" ");
break;
}
}