#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
// On an arduino UNO: A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int x,minx;
uint32_t j=0xd49d11; // RGB888
int txtsize=2; // Set text size
int sclspeed=2; // Set scroll speed
char text[20];
int RGB565(uint32_t rgb)
{
int rgb16;
rgb16=(((rgb&0xF80000)>>8) + ((rgb&0xFC00)>>5) + ((rgb&0xF8)>>3));
return rgb16;
}
void setup()
{
itoa (RGB565(j),text,16);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //0x3C for 128x32, 0x3D for 128x64
display.setTextSize(txtsize);
display.setTextColor(WHITE);
display.setTextWrap(false);
x=display.width();
minx=-6*txtsize*strlen(text); //6 = Number of pixels per each character
}
void loop()
{
display.clearDisplay();
display.setCursor(x,0); // It is recommended that the numbers be multiples of 8
display.print(text);
display.display();
x=x-sclspeed;
if(x<minx)
x=display.width();
}