#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <ESP32Servo.h>
Adafruit_SSD1306 display(-1);

unsigned long lalu;
unsigned long kini=millis();
 
#define tb 2
#define tbl 4
int mode=0;

Servo servo;

void setup() {
  // put your setup code here, to run once:
  pinMode(tb, INPUT_PULLUP);
  pinMode(tbl, INPUT_PULLUP);
  servo.attach(15);
  servo.write(0);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(25,0);
  display.println("DAFTAR MENU");
  display.setCursor(10,10);
  display.print("MANUAL");
  display.setCursor(10,20);
  display.print("AUTO 1s");
  display.setCursor(10,30);
  display.print("AUTO 2s");
  display.display();

}

void loop() {
  if(digitalRead(tb)==0){
    while(digitalRead(tb)==0) delay(100);
    mode++;
  }
  switch(mode){
  case 1 : 
    if(digitalRead(tbl)==0){
      servo.write(180);
    }
    else {
      servo.write(0);
    }
    display.setCursor(0,10);
    display.print(">");
    display.display();
    break;
  case 2 :
    if((kini-lalu)>=1000){
      lalu=kini;
    }
    servo.write(180);
    delay(500);
    servo.write(0);
    delay(500);
    display.setCursor(0,20);
    display.print(">");
    display.display();
    break;
  case 3 :
    if((kini-lalu)>=2000){
      lalu=kini;
    }
    servo.write(180);
    delay(500);
    servo.write(0);
    delay(500);
    display.setCursor(0,30);
    display.print(">");
    display.display();
    break;
  default : mode=0;
    break;
  }
  // put your main code here, to run repeatedly:
  // this speeds up the simulation
}