#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 64 // OLED display height, in pixels
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C //< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
// put your setup code here, to run once:
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.clearDisplay();
display.display();
delay(800);
}
int x = 0;
void loop() {
// put your main code here, to run repeatedly:
display.setTextSize(1); // Draw 1X-scale text
display.setTextColor(SSD1306_WHITE);
display.clearDisplay();
x++;
if(x > 127) x = 0;
display.setCursor(x, 0); // Start at top-left corner
display.clearDisplay();
display.print("Wokwi 2025");
display.drawCircle(30, 50, 10, SSD1306_WHITE);
display.drawCircle(70, 50, 10, SSD1306_WHITE);
display.drawLine(40, 50, 60, 50, SSD1306_WHITE);
display.drawLine(10, 50, 20, 50, SSD1306_WHITE);
display.drawLine(80, 50, 90, 50, SSD1306_WHITE);
display.drawLine(90, 50, 90, 20, SSD1306_WHITE);
display.drawLine(90, 20, 50, 20, SSD1306_WHITE);
display.drawLine(50, 20, 10, 40, SSD1306_WHITE);
display.drawLine(10, 40, 10, 50, SSD1306_WHITE);
display.drawTriangle(50, 25, 50, 35, 30, 35, SSD1306_WHITE);
display.drawRect(53, 25, 10, 11, SSD1306_WHITE);
display.drawRect(65, 25, 10, 11, SSD1306_WHITE);
display.drawRect(77, 25, 10, 11, SSD1306_WHITE);
display.drawLine(0, 61, 127, 61, SSD1306_WHITE);
display.display();
delay(10);
}