#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define PIN_JOYSTICK_HORZ A0
#define PIN_JOYSTICK_VERT A1
#define PIN_JOYSTICK_SEL 2
#define PIN_OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
static const unsigned char PROGMEM BITMAP_SOURCE[] = {
B00000000,
B00111100,
B01000010,
B01000010,
B01111110,
B01000010,
B01000010,
B00000000,
};
Adafruit_SSD1306 display(128, 64, &Wire, PIN_OLED_RESET);
void setup() {
setupOled();
// Serial.begin(9600); used to output debug info like Serial.println("...");
}
void setupOled() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.drawBitmap(0, 0, BITMAP_SOURCE, 8, 8, 1);
display.drawBitmap(8, 0, BITMAP_SOURCE, 8, 8, 1);
display.drawBitmap(0, 8, BITMAP_SOURCE, 8, 8, 1);
display.drawBitmap(8, 8, BITMAP_SOURCE, 8, 8, 1);
display.display();
}
void loop() {
int x = analogRead(PIN_JOYSTICK_HORZ);
int y = analogRead(PIN_JOYSTICK_VERT);
bool is_down = digitalRead(PIN_JOYSTICK_SEL) == HIGH;
//updateDisplay(x, y, is_down);
delay(3000);
}
void updateDisplay(int x, int y, bool is_down) {
// oled.clear();
// oled.setCursor(0, 0);
// oled.print(F("("));
// oled.print(x);
// oled.print(F(", "));
// oled.print(y);
// oled.print(F("), "));
// if (is_down) {
// oled.print(F("^ "));
// }
// else {
// oled.print(F("v "));
// }
// oled.switchFrame();
}