Estoy haciendo unas pruebas, para desplazarme en un menú programado en un LCD de 16x2, el problema que me encuentro, no doy movido una flecha en ese menú, alguien me podría ayudar?
Muchas gracias de antemano
Este es el LCD con el cursor, que no doy movido:
y este es el código que estoy usando:
#include <LiquidCrystal.h> //Libreria LCD
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Pines LCD
byte flechaD [8] = { //Flecha Derecha
B01000,
B01100,
B01110,
B01111,
B01110,
B01100,
B01000,
B00000,
};
byte flechaI [8] = { //Flecha Izquierda
B00010,
B00110,
B01110,
B11110,
B01110,
B00110,
B00010,
B00000,
};
void setup() {
lcd.begin(16,2);//tamaño del lcd
lcd.createChar(0, flechaD); //flechad
lcd.createChar(1, flechaI); //flechai
//configuracion de los primeros botones de pruebas
pinMode (13, OUTPUT);
pinMode (12, INPUT);
pinMode (11, INPUT);
pinMode (10, INPUT);
pinMode (9, INPUT);
pinMode (8, INPUT);
}
void loop(){ ;
bool cursory = 0;
byte cursorx = 0;
bool cursorderecha;
bool cursorizquierda;
bool cursorarriba;
bool cursorabajo;
bool cursorcentro;
lcd.clear();
lcd.setCursor(byte(cursorx) , bool(cursory));
lcd.write(byte(0));
lcd.setCursor(1, 0);//colocacion de cada parte del lcd x y
lcd.print("1");
lcd.setCursor(3, 0);
lcd.print("2");
lcd.setCursor(5, 0);
lcd.print("3");
lcd.setCursor(7, 0);
lcd.print("4");
lcd.setCursor(9, 0);
lcd.print("5");
lcd.setCursor(11, 0);
lcd.print("6");
lcd.setCursor(13, 0);
lcd.print("7");
lcd.setCursor(15, 0);
lcd.print("8");
lcd.setCursor(1, 1);
lcd.print("1");
lcd.setCursor(3, 1);
lcd.print("2");
lcd.setCursor(5, 1);
lcd.print("3");
lcd.setCursor(7, 1);
lcd.print("4");
lcd.setCursor(9, 1);
lcd.print("5");
lcd.setCursor(11, 1);
lcd.print("6");
lcd.setCursor(13, 1);
lcd.print("7");
lcd.setCursor(15, 1);
lcd.print("8");
cursorderecha = digitalRead(8) ;
cursorizquierda = digitalRead(9) ;
cursorarriba = digitalRead(10) ;
cursorabajo = digitalRead(11) ;
cursorcentro = digitalRead(12) ;
delay(250);
if(cursorderecha == HIGH && cursorx <= 15){
cursorx + 2;
}
else if(cursorizquierda == HIGH && cursorx >= 0){
cursorx - 2;
}
else if(cursorarriba == HIGH && cursory == 1){
cursory - 1;
}
else if(cursorabajo == HIGH && cursory == 0){
cursory + 1;
}
else if (cursorcentro== HIGH){
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
delay(1);
}