#include <Adafruit_SSD1306.h> // for SSD1306 OLED Display
#include <Adafruit_GFX.h>
#include <Wire.h>
#include <SPI.h> // required for both displays
#include <avr/pgmspace.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const unsigned char data1[] PROGMEM = {"103600076"};
const unsigned char data2[] PROGMEM = {"Nick Watson"};
void setup() {
// initialize serial communication for debugging
Serial.begin(9600);
// initialize display
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
}
void loop() {
// loop through each item in the list
for (int i = 128; i > 0; i--) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(i, 0);
display.cp437(true);
// print the item scrolling from right to left
for (int z = 0; z < sizeof(data1); z++) {
char myChar = pgm_read_byte_near(data1 + z);
Serial.print(myChar);
display.print(myChar);
}
display.display();
delay(1);
}
delay(100);
for (int i = 128; i > 0; i--) {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(i, 0);
display.cp437(true);
// print the item scrolling from right to left
for (int z = 0; z < sizeof(data2); z++) {
char myChar = pgm_read_byte_near(data2 + z);
Serial.print(myChar);
display.print(myChar);
}
display.display();
delay(1);
}
delay(100);