#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
const int s1=2,s2=3,s3=4,s4=5;
// Canvas size
const int a = 128;
const int b = 64;
const int reset = -1;
int info,old_info=0;
byte u=10,v=15;
// Create display
Adafruit_SSD1306 display(a, b, &Wire, reset);
void setup() {
Serial.begin(115200);
for(int b=2;b<=5;b++){
pinMode(b, INPUT_PULLUP);
}
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for (;;)
; // Don't proceed, loop forever
}
display.display();
delay(500);
display.clearDisplay();
delay(200);
}
void display_text(String text, int x, int y) {
display.setTextSize(1); // Normal 1:1 pixel scale
display.setTextColor(WHITE); // Draw white text
display.setCursor(x, y); // Start at top-left corner
display.println(text);
display.display();
}
void draw_fill(int xx,int yy,int widt,int heit){
display.fillRect(xx,yy,widt,heit,WHITE);
}
void loop() {
//display.clearDisplay();
if(digitalRead(s1)==LOW){display.clearDisplay();v++;}
else if(digitalRead(s4)==LOW){display.clearDisplay();v--;}
else if(digitalRead(s3)==LOW){display.clearDisplay();u--;}
else if(digitalRead(s2)==LOW){display.clearDisplay();u++;}
if(u>128){u=128;}
if(v>64){v=64;}
display_text("press button to move rect",0,0);
display.drawRect(30,40,40,15,WHITE);
draw_fill(u,v,35,13);
}