/*
* Latihan 1: Simulasi Lampu Darurat
* Nama : Aprisa Idma Mutiara
* NIM : 2209106001
* Platform : ESP32-S3
*/
// Definisi pin
const int pinLed = 2;
const int pinButton = 39;
void setup() {
Serial.begin(115200);
delay(1000);
// Konfigurasi pin
pinMode(pinLed, OUTPUT);
pinMode(pinButton, INPUT_PULLUP);
Serial.println("Program Simulasi Lampu Darurat dimulai!");
Serial.println("Tekan tombol untuk menyalakan LED");
}
void loop() {
// Baca status tombol
int buttonState = digitalRead(pinButton);
if (buttonState == LOW) {
blinkSOS();
Serial.println("Tombol ditekan - LED berkedip");
} else {
digitalWrite(pinLed, LOW);
Serial.println("Tombol dilepas - LED mati");
}
delay(100);
}
void blinkSOS() {
// S = ••• (3 kedipan pendek)
for (int i = 0; i < 3; i++) {
digitalWrite(pinLed, HIGH);
delay(300);
digitalWrite(pinLed, LOW);
delay(300);
}
delay(400); // jeda antar karakter
// O = ––– (3 kedipan panjang)
for (int i = 0; i < 3; i++) {
digitalWrite(pinLed, HIGH);
delay(800);
digitalWrite(pinLed, LOW);
delay(800);
}
delay(400); // jeda antar karakter
// S = ••• (3 kedipan pendek)
for (int i = 0; i < 3; i++) {
digitalWrite(pinLed, HIGH);
delay(300);
digitalWrite(pinLed, LOW);
delay(300);
}
delay(1000); // jeda antar pola
}