const int ledPin = 12;
const int buttonPin = 14;
const unsigned interval = 20000;
const unsigned long ledOnDuration = 5000;
unsigned long previousMillis = 0;
bool automaticLed = false;
void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
automaticLed = true;
if (digitalRead(ledPin) == HIGH) {
digitalWrite(ledPin, LOW);
Serial.println("LED Mati Otomatis karena akan ada Kontrol Otomatis");
}
delay(2000);
previousMillis = currentMillis;
digitalWrite(ledPin, HIGH);
Serial.println("LED Menyala Otomatis 5 detik");
delay(ledOnDuration);
digitalWrite(ledPin, LOW);
Serial.println("LED Mati");
automaticLed = false;
} else {
if (automaticLed == false) {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
digitalWrite(ledPin, HIGH);
Serial.println("LED Menyala Karena Button Ditekan");
} else {
digitalWrite(ledPin, LOW);
Serial.println("LED Mati Karena Button Dilepas");
}
}
delay(100);
}
}