#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
}