Cara Membuat Lampu Lalu Lintas dengan ESP32 — Simulasi Online
Lampu lalu lintas adalah latihan urutan (sequence) yang seru: tiga LED di ESP32 menyala bergantian meniru lampu perempatan sungguhan, hijau untuk jalan, kuning untuk bersiap, merah untuk berhenti.
Komponen yang dipakai
- ESP32
- Breadboard (setengah)
- LED
- Resistor
Cara kerja
- LED merah ke GPIO13, LED kuning ke GPIO12, dan LED hijau ke GPIO14, masing-masing seri resistor 220 Ohm.
- Fungsi nyalakan() memastikan hanya satu LED yang menyala pada satu waktu.
- Urutan berjalan: hijau 3 detik, kuning 1 detik, merah 3 detik, kuning lagi 1 detik.
- Setiap pergantian fase juga dicetak ke Serial Monitor, misalnya HIJAU: jalan.
Konsep yang dipelajari
Kode program
/*
Lampu lalu lintas: urutan hijau -> kuning -> merah -> kuning,
sama seperti di perempatan jalan.
Rangkaian: GPIO13 -> LED merah, GPIO12 -> LED kuning,
GPIO14 -> LED hijau (masing-masing seri 220 Ohm ke rel - breadboard).
*/
const int LED_MERAH = 13;
const int LED_KUNING = 12;
const int LED_HIJAU = 14;
void nyalakan(int pinMenyala) {
digitalWrite(LED_MERAH, pinMenyala == LED_MERAH ? HIGH : LOW);
digitalWrite(LED_KUNING, pinMenyala == LED_KUNING ? HIGH : LOW);
digitalWrite(LED_HIJAU, pinMenyala == LED_HIJAU ? HIGH : LOW);
}
void setup() {
Serial.begin(115200);
pinMode(LED_MERAH, OUTPUT);
pinMode(LED_KUNING, OUTPUT);
pinMode(LED_HIJAU, OUTPUT);
Serial.println("Lampu lalu lintas ESP32 berjalan.");
}
void loop() {
nyalakan(LED_HIJAU);
Serial.println("HIJAU: jalan");
delay(3000);
nyalakan(LED_KUNING);
Serial.println("KUNING: hati-hati");
delay(1000);
nyalakan(LED_MERAH);
Serial.println("MERAH: berhenti");
delay(3000);
nyalakan(LED_KUNING);
Serial.println("KUNING: bersiap");
delay(1000);
}