/*void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#define SSD1306_INVERTDISPLAY 0xA7
#define SSD1306_INVERSE 2
/*
const unsigned char TEXT[][8] PROGMEM ={
//0xF1,0xE4,0xE4,0xE4,0xE4,0xE4,0xF1,0xff
//0xE1,0xCC,0xCC,0xCC,0xCC,0xCC,0xE1,0xff
{0xE1,0xCC,0xCC,0xCC,0xCC,0xCC,0xE1,0xff},
{0xF3,0xE3,0xF3,0xF3,0xF3,0xF3,0xC0,0xFF},
{0xE1,0xCC,0xFC,0xF9,0xF3,0xE7,0xC0,0xFF},
{0xE1,0xCC,0xFC,0xF9,0xFC,0xCC,0xE1,0xFF},
{0xEF,0xCD,0xCC,0xCC,0xC0,0xFC,0xFC,0xFF},
{0xC0,0xDF,0xC1,0xFC,0xFC,0xC8,0xE1,0xFF},
{0xE1,0xCC,0xCF,0xC1,0xCC,0xCC,0xE1,0xFF},
{0xC0,0xFC,0xF9,0xF3,0xF3,0xF3,0xF3,0xFF},
{0xE1,0xCC,0xCC,0xE1,0xCC,0xCC,0xE1,0xFF},
{0xE1,0xCC,0xCC,0xE0,0xFC,0xCC,0xE1,0xFF},
{0xff,0xf3,0xf3,0xff,0xf3,0xf3,0xff,0Xff}, // :
{0xC3,0xD9,0xD9,0xD9,0xD9,0xD9,0xC3,0xff},
{0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xC3,0xff},};*/
const unsigned char TEXT[][1] PROGMEM ={
//0xF1,0xE4,0xE4,0xE4,0xE4,0xE4,0xF1,0xff
//0xE1,0xCC,0xCC,0xCC,0xCC,0xCC,0xE1,0xff
0xE1,0xCC,0xCC,0xCC,0xCC,0xCC,0xE1,0xff,
0xF3,0xE3,0xF3,0xF3,0xF3,0xF3,0xC0,0xFF,
0xE1,0xCC,0xFC,0xF9,0xF3,0xE7,0xC0,0xFF};
/*
0xE1,0xCC,0xFC,0xF9,0xFC,0xCC,0xE1,0xFF,
0xEF,0xCD,0xCC,0xCC,0xC0,0xFC,0xFC,0xFF,
0xC0,0xDF,0xC1,0xFC,0xFC,0xC8,0xE1,0xFF,
0xE1,0xCC,0xCF,0xC1,0xCC,0xCC,0xE1,0xFF,
0xC0,0xFC,0xF9,0xF3,0xF3,0xF3,0xF3,0xFF,
0xE1,0xCC,0xCC,0xE1,0xCC,0xCC,0xE1,0xFF,
0xE1,0xCC,0xCC,0xE0,0xFC,0xCC,0xE1,0xFF,
0xE1,0xCC,0xCC,0xCC,0xCC,0xCC,0xE1,0xff};
//0xff,0xf3,0xf3,0xff,0xf3,0xf3,0xff,0Xff, // :
//0xC3,0xD9,0xD9,0xD9,0xD9,0xD9,0xC3,0xff,
//0xDF,0xDF,0xDF,0xDF,0xDF,0xDF,0xC3,0xff};
*/
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;);
display.clearDisplay();
}}
//delay(2000);
void loop() {//display.clearDisplay(); //display.invertDisplay(1);
//display.clearDisplay();
//display.setTextSize(1);
//display.setTextColor(WHITE);
//display.setCursor(0, 10);
// startWrite();
/*
for(int i=0; i<104; i++) {
display.clearDisplay();
display.drawBitmap(10,10,TEXT[i],8,1,1);
display.drawBitmap(10,11,TEXT[i+1],8,1,1);
display.drawBitmap(10,12,TEXT[i+2],8,1,1);
display.drawBitmap(10,13,TEXT[i+3],8,1,1);
display.drawBitmap(10,14,TEXT[i+4],8,1,1);
display.drawBitmap(10,15,TEXT[i+5],8,1,1);
display.drawBitmap(10,16,TEXT[i+6],8,1,1);
display.drawBitmap(10,17,TEXT[i+7],8,1,1);
// Display static text
//display.println("Hello, world!");
delay(100);
//display.drawBitmap(10,30,font,18,19,1);
display.display();
}}*/
int x=10;
int y=10;
int ii=24;
//void draw(int ii, int jj, int n){
for(int i=0; i<ii; i=i+1){
display.clearDisplay();
if(i<17){
for(int j=0;j<8;j++){
display.drawBitmap(x,y+j,TEXT[i+j],8,1,1);}
}
if(i>16){
for(int j=0;j<24-i;j++){
display.drawBitmap(x,y+j,TEXT[i+j],8,1,1);}
for(int j=24-i;j<8;j++){
display.drawBitmap(x,y+j,TEXT[i+j-24],8,1,1);}}
display.display();delay(300);}
}
/*
for(int i=0; i<23; i=i+1) {
display.clearDisplay();
for(int ii=0;ii<8;ii++){
display.drawBitmap(10,10+ii,TEXT[i+ii],8,1,1);}
display.drawRect(8,8,28,36,1);
display.display();}
}*/