#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define OLED_WIDTH 128
#define OLED_HEIGHT 64
long timer;
long timer2;
#define OLED_ADDR 0x3C
int bangun = 64;
int posPupil = 40;
bool kedip = false;
Adafruit_SSD1306 mata(OLED_WIDTH, OLED_HEIGHT);
void setup() {
Serial.begin(9600);
mata.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
while (bangun >= 0 ) {
mata.clearDisplay();
mata.fillRect(0, 0, 128, 64, WHITE);
mata.fillRect(1, 1, 128, bangun, BLACK);
mata.fillRect(40, 10, 30, 40, BLACK);
mata.display();
bangun = bangun - 4;
}
}
void loop() {
int pot = analogRead(A1);
if (millis() >= 4000) {
posPupil = map(pot, 0, 1023, 10, 90);
}
mata.clearDisplay();
mata.fillRect(0, 0, 128, 64, WHITE);
mata.fillRect(posPupil, 10, 30, 40, BLACK);
mata.fillRect(0, 0, 128, bangun, BLACK);
mata.display();
if (millis() - timer > 4000) {
kedip = true;
timer = millis();
}
if (millis() - timer2 > 4010) {
kedip = false;
timer2 = millis();
bangun = 0;
}
if (kedip == true ) {
bangun = bangun + 10;
}
if (bangun >= 50) {
bangun = 0;
}
}