const int buttonPin = 2; // Pin untuk tombol
const int ledPin = 13; // Pin untuk LED
unsigned long ledOnTime = 0; // Waktu saat LED dinyalakan
bool ledState = false; // Status LED
bool buttonPressed = false; // Status tombol
void setup() {
pinMode(buttonPin, INPUT); // Set pin tombol sebagai input
pinMode(ledPin, OUTPUT); // Set pin LED sebagai output
}
void loop() {
// Membaca status tombol
int buttonState = digitalRead(buttonPin);
// Jika tombol ditekan dan LED belum menyala
if (buttonState == HIGH && !buttonPressed) {
ledOnTime = millis(); // Catat waktu saat LED dinyalakan
digitalWrite(ledPin, HIGH); // Nyalakan LED
ledState = true; // Update status LED
buttonPressed = true; // Tandai bahwa tombol sudah ditekan
}
// Jika LED menyala dan sudah 3 detik berlalu
if (ledState && (millis() - ledOnTime >= 3000)) {
digitalWrite(ledPin, LOW); // Matikan LED
ledState = false; // Update status LED
}
// Reset tombol jika dilepas
if (buttonState == LOW) {
buttonPressed = false; // Tombol sudah tidak ditekan
}
}