//Departamento de informatica EESTn1 Raul Scalabrini Ortiz
//Santa Teresita - Partido de la Costa
//Provincia de Buenos Aires - Argentina
#include <LiquidCrystal_I2C.h>
#define VERT_PIN A0 //pin analogico vertical
#define HORZ_PIN A1 //pin analogico horizontal
#define SEL_PIN 2 //pin digital para seleccionar
#define I2C_ADDR 0x27 //direccion en hexadecimal del modulo
#define LCD_COLUMNS 20 //cantidad de columnas del display
#define LCD_LINES 4 //cantidad de filas del display
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
lcd.init(); //iniciar el lcd
lcd.backlight(); // iniciar la iluminacion del display
pinMode(VERT_PIN, INPUT); //Declaramos pin como entrada
pinMode(HORZ_PIN, INPUT); //Declaramos pin como entrada
pinMode(SEL_PIN, INPUT_PULLUP);
lcd.setCursor(4, 0);
lcd.print("Presiona ");
lcd.setCursor(7, 1);
lcd.print("Las ");
lcd.setCursor(5, 2);
lcd.print("posiciones");
delay(2000);
lcd.clear();
}
void loop() {
int horz = analogRead(HORZ_PIN); //leemos los valores de entrada horizontales
int vert = analogRead(VERT_PIN); //leemos los valores de entrada verticales
if (vert < 300) {
lcd.setCursor(7, 3);
lcd.print("Abajo");
}
if (vert > 700) {
lcd.setCursor(7, 0);
lcd.print("Arriba");
}
if (horz > 700) {
lcd.setCursor(0, 2);
lcd.print("Izquierda");
}
if (horz < 300) {
lcd.setCursor(13, 1);
lcd.print("Derecha");
}
if (digitalRead(SEL_PIN) == LOW) { //lo usamos en este caso para borrar la pantalla
lcd.clear();
}
delay(100);
}