// ───▄▀▀▀▄▄▄▄▄▄▄▀▀▀▄───
// ───█▒▒░░░░░░░░░▒▒█───
// ────█░░█░░░░░█░░█────
// ─▄▄──█░░░▀█▀░░░█──▄▄─
// █░░█─▀▄░░░░░░░▄▀─█░░█
// █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
// █░░ Daniel, ░░█
// █░░ 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, Daniel!";
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);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
ssd1306:DATA
ssd1306:CLK
ssd1306:DC
ssd1306:RST
ssd1306:CS
ssd1306:3V3
ssd1306:VIN
ssd1306:GND