#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display (128,64,&Wire,-1);
#define up 12
#define right 14
#define left 19
#define down 18
int x = 54;
int y = 22;
void setup() {
Serial.begin(115200);
pinMode(up, INPUT_PULLUP);
pinMode(left, INPUT_PULLUP);
pinMode(right, INPUT_PULLUP);
pinMode(down, INPUT_PULLUP);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)){
Serial.println("no display");
while(1);
}
display.clearDisplay();
display.drawRect(x, y, 20, 20, WHITE);
display.display();
}
void loop() {
delay(100);
while (digitalRead(up) == 0){
if (y > 0) {
y -=2;
}
square();
}
while (digitalRead(right) == 0){
if (x < 108) {
x +=2;
}
square();
}
while (digitalRead(left) == 0){
if (x > 0) {
x -=2;
}
square();
}
while (digitalRead(down) == 0){
if (y < 44) {
y +=2;
}
square();
}
}
void square(){
display.clearDisplay();
display.drawRect(x, y, 30, 30, WHITE);
display.display();
}