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.

Board: ESP323 komponen

Komponen yang dipakai

  • ESP32
  • Breadboard (setengah)
  • LED
  • Resistor

Cara kerja

  1. LED merah ke GPIO13, LED kuning ke GPIO12, dan LED hijau ke GPIO14, masing-masing seri resistor 220 Ohm.
  2. Fungsi nyalakan() memastikan hanya satu LED yang menyala pada satu waktu.
  3. Urutan berjalan: hijau 3 detik, kuning 1 detik, merah 3 detik, kuning lagi 1 detik.
  4. Setiap pergantian fase juga dicetak ke Serial Monitor, misalnya HIJAU: jalan.

Konsep yang dipelajari

Urutan (sequence) banyak LEDFungsi pembantuPewaktuan bertingkat

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);
}

Template ESP32 lainnya