#include <LiquidCrystal.h>
int rs=2,en=3,d4=4,d5=5,d6=6,d7=7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int x=A1;
int y=A2;
int sw=8;
int up=11,down=10,right=9,left=12;
int X;
int Y;
int swstate;
void setup() {
pinMode(x,INPUT);
pinMode(y,INPUT);
pinMode(sw,INPUT_PULLUP);
pinMode(up,OUTPUT);
pinMode(right,OUTPUT);
pinMode(down,OUTPUT);
pinMode(left,OUTPUT);
}
void loop() {
X=analogRead(x);
Y=analogRead(y);
swstate=digitalRead(sw);
if((480 <= X) & (530 >= X) & (531 <= Y)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("up");
digitalWrite(up, HIGH);
delay(2000);
lcd.clear();
digitalWrite(up, LOW);}
if((480 <= X) & (530 >= X) & (Y <= 479)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("down");
digitalWrite(down, HIGH);
delay(2000);
lcd.clear();
digitalWrite(down, LOW);}
if((531 <= X) & (480 <= Y) & (530 >= Y)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("left");
digitalWrite(left, HIGH);
delay(2000);
lcd.clear();
digitalWrite(left, LOW);}
if((X <= 479) & (480 <= Y) & (530 >= Y)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("right");
digitalWrite(right, HIGH);
delay(2000);
lcd.clear();
digitalWrite(right, LOW);}
if((531 <= X) & (531 <= Y)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("up left");
digitalWrite(up, HIGH);
digitalWrite(left, HIGH);
delay(2000);
lcd.clear();
digitalWrite(up, LOW);
digitalWrite(left, LOW);}
if((X <= 479) & (531 <= Y)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("up right");
digitalWrite(up, HIGH);
digitalWrite(right, HIGH);
delay(2000);
lcd.clear();
digitalWrite(up, LOW);
digitalWrite(right, LOW);}
if((531 <= X) & (Y <= 479)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("down left");
digitalWrite(down, HIGH);
digitalWrite(left, HIGH);
delay(2000);
lcd.clear();
digitalWrite(down, LOW);
digitalWrite(left, LOW);}
if((X <= 479) & (Y <= 479)){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("down right");
digitalWrite(down, HIGH);
digitalWrite(right, HIGH);
delay(2000);
lcd.clear();
digitalWrite(down, LOW);
digitalWrite(right, LOW);}
if(swstate == LOW){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("push");
digitalWrite(left,HIGH);
digitalWrite(right,HIGH);
digitalWrite(down,HIGH);
digitalWrite(up,HIGH);
delay(2000);
lcd.clear();
digitalWrite(left,LOW);
digitalWrite(right,LOW);
digitalWrite(down,LOW);
digitalWrite(up,LOW);
}
}