// ───▄▀▀▀▄▄▄▄▄▄▄▀▀▀▄───
// ───█▒▒░░░░░░░░░▒▒█───
// ────█░░█░░░░░█░░█────
// ─▄▄──█░░░▀█▀░░░█──▄▄─
// █░░█─▀▄░░░░░░░▄▀─█░░█
// █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
// █░░ Andrew, ░░█
// █░░ Welcome to the ░░█
// █░░ C L U B ░░█
// █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "cool.h"
#define SCREEN_I2C_ADDR 0x3C
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RST_PIN -1 // Reset pin (-1 if not available)
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RST_PIN);
int frame = 0;
String message = "Welcome, Andrew!";
int messageIndex = 0;
void drawFrame() {
display.clearDisplay();
display.drawBitmap(40, 0, cool_frames[frame], COOL_FRAME_WIDTH, COOL_FRAME_HEIGHT, 1);
display.setCursor(16, 52);
display.print(message.substring(0, messageIndex));
display.display();
frame = (frame + 1) % COOL_FRAME_COUNT;
if (frame % 3 == 0) {
messageIndex = (messageIndex + 1) % 40;
}
}
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_I2C_ADDR);
display.setTextColor(SSD1306_WHITE);
}
void loop() {
drawFrame();
delay(COOL_FRAME_DELAY);
}