#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
/*
* Connections
* SSD1306 OLED | Arduino Uno
* ---------------------------
* VCC | +5V (Vcc/power/+ve)
* GND | GND (Ground/-ve/0v)
* SCL | A5 (Serial Clock Line)
* SDA | A4 (Serial Data Line)
*/
const int SCREEN_WIDTH = 128; // OLED display width, in pixels
const int SCREEN_HEIGHT = 64; // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int Count = 0;
String text;
#define SW1 3
#define SW2 2
const unsigned char espada [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcf, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xe0, 0x7f, 0xff,
0xff, 0xff, 0x00, 0x7d, 0xbe, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0c, 0x90, 0x00, 0xff, 0xff,
0xff, 0xff, 0x00, 0x04, 0x90, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x04, 0x90, 0x03, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcc, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0x93, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0xcc, 0x93, 0x00, 0xff, 0xff, 0xff, 0xff, 0x80, 0x4c, 0x92, 0x01, 0xff, 0xff,
0xff, 0xff, 0x80, 0x4c, 0x92, 0x01, 0xff, 0xff, 0xff, 0xff, 0x87, 0xcc, 0x93, 0xe1, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcc, 0x93, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x4c, 0x92, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xc0, 0x48, 0x92, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x68, 0x96, 0x03, 0xff, 0xff,
0xff, 0xff, 0xe0, 0xe8, 0x97, 0x03, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xe8, 0x97, 0xe7, 0xff, 0xff,
0xff, 0xff, 0xff, 0xa8, 0x95, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x28, 0x9c, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xf0, 0x38, 0x9c, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x78, 0x9e, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xf9, 0xf8, 0x9f, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
const unsigned char images [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xf3, 0xff, 0xfe, 0x7f, 0xff, 0xcf, 0xff, 0xff, 0xf1, 0xff, 0xfe, 0x7f, 0xff, 0x9f, 0xff,
0xff, 0xf9, 0xff, 0xfe, 0x7f, 0xff, 0x9f, 0xff, 0xff, 0xf8, 0xff, 0xfe, 0x7f, 0xff, 0x1f, 0xff,
0xff, 0xf8, 0xff, 0xfe, 0x7f, 0xff, 0x1f, 0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x7f, 0xfe, 0x1f, 0xff,
0xff, 0xf8, 0x7f, 0xfe, 0x7f, 0xfe, 0x1f, 0xff, 0xff, 0xf8, 0x7f, 0xfe, 0x7f, 0xfe, 0x1f, 0xff,
0xff, 0xf8, 0x3f, 0xfe, 0x7f, 0xfc, 0x3f, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x3f, 0xfc, 0x3f, 0xff,
0xff, 0x9c, 0x1f, 0xf0, 0x0f, 0xf8, 0x39, 0xff, 0xff, 0x9c, 0x1f, 0x80, 0x01, 0xf8, 0x39, 0xff,
0xff, 0x8c, 0x1f, 0xfc, 0x3f, 0xf8, 0x31, 0xff, 0xff, 0x8c, 0x0f, 0xfc, 0x3f, 0xf0, 0x31, 0xff,
0xff, 0xc6, 0x0f, 0xfc, 0x3f, 0xf0, 0x63, 0xff, 0xff, 0xc2, 0x07, 0xfc, 0x3f, 0xe0, 0x43, 0xff,
0xff, 0xc3, 0x07, 0xfc, 0x3f, 0xe0, 0xc3, 0xff, 0xff, 0xe1, 0x83, 0xfc, 0x3f, 0xc1, 0x87, 0xff,
0xff, 0xe1, 0x83, 0xfc, 0x3f, 0xc1, 0x07, 0xff, 0xff, 0xe0, 0xc3, 0xfc, 0x3f, 0xc3, 0x07, 0xff,
0xff, 0xe0, 0x41, 0xfc, 0x3f, 0x82, 0x07, 0xff, 0xff, 0xf0, 0x61, 0xfc, 0x3f, 0x86, 0x0f, 0xff,
0xff, 0x70, 0x30, 0xfc, 0x3f, 0x0c, 0x0e, 0xff, 0xff, 0x30, 0x10, 0xfc, 0x3f, 0x08, 0x0c, 0xff,
0xff, 0x18, 0x18, 0xfc, 0x3f, 0x18, 0x18, 0xff, 0xff, 0x8c, 0x0c, 0x7c, 0x3e, 0x30, 0x31, 0xff,
0xff, 0x86, 0x0c, 0x7c, 0x3e, 0x30, 0x61, 0xff, 0xff, 0x82, 0x06, 0x7c, 0x3e, 0x60, 0xc3, 0xff,
0xff, 0xc1, 0x02, 0x7c, 0x3e, 0x40, 0x83, 0xff, 0xff, 0xc1, 0x83, 0xfc, 0x3f, 0xc1, 0x83, 0xff,
0xff, 0xe0, 0xc1, 0xfc, 0x3f, 0x83, 0x07, 0xff, 0xff, 0xe0, 0x61, 0xfc, 0x3f, 0x86, 0x07, 0xff,
0xff, 0xf0, 0x30, 0xfc, 0x3f, 0x0c, 0x0f, 0xff, 0xff, 0xf0, 0x18, 0x7c, 0x3e, 0x18, 0x0f, 0xff,
0xff, 0xf8, 0x0c, 0x7c, 0x3e, 0x30, 0x1f, 0xff, 0xff, 0xd8, 0x0c, 0x7c, 0x3e, 0x30, 0x1b, 0xff,
0xff, 0xcc, 0x06, 0x7c, 0x3e, 0x60, 0x33, 0xff, 0xff, 0xc7, 0x03, 0x7c, 0x3e, 0xc0, 0xe3, 0xff,
0xff, 0xe1, 0x81, 0xfc, 0x3f, 0x81, 0x87, 0xff, 0xff, 0xe0, 0xc0, 0xfc, 0x3f, 0x03, 0x07, 0xff,
0xff, 0xf0, 0x60, 0x7c, 0x3e, 0x06, 0x0f, 0xff, 0xff, 0xf8, 0x30, 0x3c, 0x3c, 0x0c, 0x1f, 0xff,
0xff, 0xf8, 0x1c, 0x3c, 0x3c, 0x38, 0x1f, 0xff, 0xff, 0xfc, 0x0e, 0x1c, 0x38, 0x70, 0x3f, 0xff,
0xff, 0xfe, 0x03, 0x1c, 0x38, 0xc0, 0x7f, 0xff, 0xff, 0xfe, 0x01, 0x9c, 0x39, 0x80, 0x7f, 0xff,
0xff, 0xff, 0x00, 0xdc, 0x3b, 0x00, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7c, 0x3e, 0x01, 0xff, 0xff,
0xff, 0xff, 0xc0, 0x3c, 0x3c, 0x03, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x1e, 0x70, 0x0f, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x0e, 0x70, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x06, 0x60, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x86, 0x61, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0x67, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
const unsigned char aad8 [] PROGMEM = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xcf, 0xff, 0xff, 0xf3, 0xfe, 0xff,
0xfe, 0x7f, 0xcf, 0xff, 0xff, 0xf3, 0xfe, 0x7f, 0xfe, 0x7f, 0xe7, 0xff, 0xff, 0xe7, 0xfe, 0x7f,
0xfc, 0x7f, 0xf3, 0xff, 0xff, 0xcf, 0xfe, 0x3f, 0xfc, 0x7f, 0xfb, 0xff, 0xff, 0xdf, 0xfe, 0x3f,
0xfc, 0x7f, 0xf9, 0x3f, 0xfc, 0x9f, 0xfe, 0x3f, 0xf8, 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfc, 0x1f,
0xf8, 0x3f, 0xf8, 0x7f, 0xfe, 0x1f, 0xfc, 0x1f, 0xf8, 0x1f, 0xe0, 0x3f, 0xfc, 0x07, 0xf8, 0x1f,
0xf8, 0x07, 0xfe, 0x3f, 0xf8, 0x7f, 0xe0, 0x1f, 0xfc, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x3f,
0xfe, 0x00, 0x1e, 0x7f, 0xfe, 0x78, 0x00, 0x7f, 0xff, 0x00, 0x06, 0x3f, 0xfc, 0x60, 0x00, 0xff,
0xff, 0xf0, 0x03, 0x3f, 0xfc, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xfd, 0xbf, 0xff, 0xbf, 0xff, 0xff,
0xff, 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x30, 0x03, 0xff, 0xff, 0xc0, 0x04, 0xff,
0xff, 0x80, 0x7f, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x80, 0xe7, 0xff, 0xff, 0xe7, 0x03, 0xff,
0xff, 0xe7, 0xcf, 0x7f, 0xfe, 0xf3, 0xe7, 0xff, 0xff, 0xff, 0x33, 0x7f, 0xfe, 0xcc, 0xff, 0xff,
0xff, 0xfc, 0x36, 0x7f, 0xfe, 0x6c, 0x3f, 0xff, 0xff, 0xff, 0xe6, 0x7f, 0xfe, 0x67, 0xff, 0xff,
0xff, 0xff, 0xc6, 0x7f, 0xfc, 0x63, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfc, 0x7f, 0xff, 0xff,
0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xe1, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xe3, 0x97, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xe7, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcf, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
void setup()
{
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // here the 0x3c is the I2C address, check your i2c address if u have multiple devices.
display.clearDisplay();
delay(2000);
pinMode(SW1,INPUT_PULLUP);
pinMode(SW2,INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
display.clearDisplay();
display.setTextColor(WHITE);
if(digitalRead(SW1)== 0)
{
Count++;
while(digitalRead(SW1)==0) { delay(10); }
if(Count>3) { Count=1; }
}
if (Count==1)
{
display.drawBitmap(10, 0, espada, 64, 64, WHITE);
}
if (Count==2)
{
display.drawBitmap(10, 0, images, 64, 64, WHITE);
}
if (Count==3)
{
display.drawBitmap(10, 0, aad8, 64, 64, WHITE);
}
text = String(Count);
display.setTextSize(3);
display.setCursor(90, 40);
display.println(text);
display.display();
}