#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SDA_PIN 26
#define SCL_PIN 25
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
Wire.begin(SDA_PIN, SCL_PIN);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Failed to start SSD1306 OLED"));
while (1);
}
oled.clearDisplay();
oled.display();
}
void loop() {
// Gambar mata terbuka
drawEyes(true);
delay(1500);
// Gambar mata tertutup (kedip)
drawEyes(false);
delay(200);
// Buka mata lagi
drawEyes(true);
delay(2000);
}
void drawEyes(bool open) {
oled.clearDisplay();
if (open) {
// Mata kiri
oled.drawCircle(40, 32, 12, WHITE); // garis luar mata
oled.fillCircle(40, 32, 4, WHITE); // bola mata (pupil)
// Mata kanan
oled.drawCircle(88, 32, 12, WHITE);
oled.fillCircle(88, 32, 4, WHITE);
} else {
// Kedip (mata tertutup = garis)
oled.drawLine(28, 32, 52, 32, WHITE); // mata kiri tertutup
oled.drawLine(76, 32, 100, 32, WHITE); // mata kanan tertutup
}
oled.display();
}