#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// OLED FeatherWing buttons map to different pins depending on board.
// The I2C (Wire) bus may also be different.
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);
#define C_X 63
#define C_Y 31
static const unsigned char PROGMEM logo_bmp[] =
{
// '123', 58x48px
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xc0,
0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xc0,
0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xc0,
0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xc0,
0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xf0, 0xe0, 0x7f, 0xff, 0xc0,
0xff, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xc0,
0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xc0,
0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0xc0,
0xff, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x80, 0x3f, 0xff, 0xc0,
0xff, 0xff, 0xe0, 0x01, 0xc0, 0x03, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x03, 0xf0, 0x03, 0xff, 0xc0,
0xff, 0xff, 0xc0, 0x07, 0xf8, 0x03, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x0f, 0xfe, 0x03, 0xff, 0xc0,
0xff, 0xff, 0xe0, 0x0f, 0xff, 0x83, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xc0,
0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xe0, 0xfc, 0x01, 0xff, 0xe0, 0x7f, 0xc0,
0xff, 0x80, 0x3e, 0x00, 0xff, 0x80, 0x1f, 0xc0, 0xfe, 0x00, 0x0f, 0x00, 0xff, 0x00, 0x07, 0xc0,
0xf8, 0x00, 0x07, 0x80, 0xfc, 0x00, 0x03, 0xc0, 0xf8, 0x1f, 0x03, 0xe0, 0xf8, 0x0f, 0x81, 0xc0,
0xf0, 0x7f, 0xc1, 0xe0, 0xf0, 0x3f, 0xe0, 0xc0, 0xe0, 0xff, 0xe0, 0xe0, 0xf0, 0x7f, 0xf0, 0x40,
0xe1, 0xff, 0xf0, 0xe0, 0xe0, 0xff, 0xf8, 0x40, 0xc3, 0xff, 0xf8, 0x60, 0xe1, 0xff, 0xf8, 0x40,
0xc3, 0xff, 0xf8, 0x60, 0xe1, 0xff, 0xfc, 0x00, 0xc3, 0xff, 0xf8, 0x60, 0xe3, 0xff, 0xfc, 0x00,
0xc7, 0xff, 0xfc, 0x60, 0xc3, 0xff, 0xfc, 0x00, 0xc7, 0xff, 0xfc, 0x60, 0xc3, 0xff, 0xfc, 0x00,
0xc7, 0xff, 0xfc, 0x60, 0xc3, 0xff, 0xfc, 0x00, 0xc3, 0xff, 0xf8, 0x60, 0xe1, 0xff, 0xfc, 0x00,
0xc3, 0xff, 0xf8, 0x60, 0xe1, 0xff, 0xfc, 0x00, 0xe1, 0xff, 0xf0, 0xf0, 0xe0, 0xff, 0xf8, 0x40,
0xe1, 0xff, 0xe0, 0xff, 0xf0, 0xff, 0xf0, 0x40, 0xe0, 0xff, 0xc0, 0xff, 0xf0, 0x7f, 0xe0, 0xc0,
0xf0, 0x3f, 0x81, 0xff, 0xf8, 0x1f, 0xc1, 0xc0, 0xf8, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x01, 0xc0,
0xfc, 0x00, 0x07, 0xff, 0xfe, 0x00, 0x03, 0xc0, 0xff, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x0f, 0xc0
};
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3c); // Address 0x3C for 128x32
display.display();
delay(1000);
}
void loop(){
display.clearDisplay();
display.drawBitmap(0,0,logo_bmp,58,48,SSD1306_WHITE);
display.display();
}