#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLS 20
#define LCD_ROWS 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLS, LCD_ROWS);
// joystick pins
const int JoystickX = 0; // X
const int JoystickY = 1; // Y
const int JoySwitch = 2; // digital pushbutton
void setup() {
lcd.init();
lcd.backlight();
pinMode(JoySwitch, INPUT_PULLUP); // Pulled HIGH. LOW on button press
lcd.setCursor(0, 0);
lcd.print("__X_ _S_ __Y_");
}
void loop() {
joystickXY();
}
void joystickXY() {
int s = digitalRead(JoySwitch);
int x = analogRead(JoystickX);
int y = analogRead(JoystickY);
display(s, x, y);
}
void display(int s, int x, int y) {
lcd.setCursor(0, 1);
spacepad(x);
lcd.setCursor(8,1);
lcd.print(s);
lcd.setCursor(12,1);
spacepad(y);
}
void spacepad(int value) {
if (value < 1000)
lcd.print(" ");
if (value < 100)
lcd.print(" ");
if (value < 10)
lcd.print(" ");
lcd.print(value);
}