Simulasi Lampu Lalu Lintas dengan ESP32: Belajar Mikrokontroler (Lesson 1 - Bagian 2)
- Zen System

- Jun 15
- 3 min read
Tutorial 3: Menyalakan 3 Lampu LED dengan ESP32
Tutorial kali ini, kita akan melanjutkan belajar bagaimana menyalakan 3 lampu led sekaligus menggunakan mikrokontroler ESP32.
Material yang diperlukan:
Chip ESP32 & kabel data

Led merah, led hijau, led kuning

Resistor 220 ohm 3 pcs

Kabel serabut AWG26
Skema koneksi
Lakukan koneksi seperti gambar dibawah ini:

Penambahan resistor pada pin (+) led adalah untuk mencegah arus listrik berlebihan dari pin out ESP32 yang dapat menyebabkan led terbakar.
Coding
Masukkan kode perintah untuk menyalakan 3 lampu led sekaligus seperti dibawah ini:
int led_merah = 4;
int led_hijau = 5;
int led_kuning = 2;
void setup() {
// put your setup code here, to run once:
pinMode(led_merah, OUTPUT);
pinMode(led_hijau, OUTPUT);
pinMode(led_kuning, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, HIGH);
digitalWrite(led_kuning, HIGH);
}Upload kode tersebut ke ESP32.
Hasil
Seketika setelah code di upload, maka lampu 3 buah lampu led akan menyala.

Penjelasan Kode Program
int led_merah = 4;
int led_hijau = 5;
int led_kuning = 2;Kode program diatas memiliki arti, buat variabel bernama led_merah, led_hijau dan led_kuning dengan tipe data integer (int). Variabel sendiri sangat berguna dalam kegiatan coding, seperti mempermudah dalam menyimpan data dan saat data tersebut dibutuhkan, kita cukup memanggil nama variabel tersebut.
void setup() {
// put your setup code here, to run once:
pinMode(led_merah, OUTPUT);
pinMode(led_hijau, OUTPUT);
pinMode(led_kuning, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, HIGH);
digitalWrite(led_kuning, HIGH);
}Jika kalian sudah mengikuti tutorial dari bagian 1, maka kalian sudah mengerti arti kode program diatas. Hanya saja sekarang kode program sedikit berubah yaitu pada perintah pinMode() dan digitalWrite(). Jika diperhatikan parameter yang diisi adalah nama variabelnya bukan angka pin.
Sebagai contoh karena kita sudah mendeklarasikan variabel
int led_merah = 4
maka,
pinMode(led_merah, OUTPUT) sama dengan pinMode(4, OUTPUT).
Tutorial 4: Simulasi lampu lalu lintas menggunakan 3 Lampu LED dengan ESP32
Setelah kalian sudah menyelesaikan Tutorial 1-3, maka kita dapat belajar bagimana membuat sebuah sistem sederhana lampu lalu lintas.
Kita coba buat skenario sederhana pada sistem lampu lalu lintas ini. Skenario sederhananya adalah lampu merah akan menyala selama 10 detik. Setelah itu lampu hijau akan menyala selama 7 detik. Dan setelah itu lampu kuning akan menyala 2 detik, dan seterusnya berulang.
Coding
Masukkan kode perintah untuk skenario diatas:
int led_merah = 4;
int led_hijau = 5;
int led_kuning = 2;
int delay_led_merah = 10000;
int delay_led_hijau = 7000;
int delay_led_kuning = 2000;
void setup() {
// put your setup code here, to run once:
pinMode(led_merah, OUTPUT);
pinMode(led_hijau, OUTPUT);
pinMode(led_kuning, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, LOW);
delay(delay_led_merah);
digitalWrite(led_merah, LOW);
digitalWrite(led_hijau, HIGH);
digitalWrite(led_kuning, LOW);
delay(delay_led_hijau);
digitalWrite(led_merah, LOW);
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, HIGH);
delay(delay_led_kuning);
}Upload kode tersebut ke ESP32.
Hasil
Penjelasan Kode Program
int led_merah = 4;
int led_hijau = 5;
int led_kuning = 2;
int delay_led_merah = 10000;
int delay_led_hijau = 7000;
int delay_led_kuning = 2000;Kode program diatas adalah deklarasi nama variabel dengan nilainya. Kalau dilihat ada penambahan 3 variabel dari tutorial ke-3 sebelumnya.
void setup() {
// put your setup code here, to run once:
pinMode(led_merah, OUTPUT);
pinMode(led_hijau, OUTPUT);
pinMode(led_kuning, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(led_merah, HIGH);
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, LOW);
delay(delay_led_merah);
digitalWrite(led_merah, LOW);
digitalWrite(led_hijau, HIGH);
digitalWrite(led_kuning, LOW);
delay(delay_led_hijau);
digitalWrite(led_merah, LOW);
digitalWrite(led_hijau, LOW);
digitalWrite(led_kuning, HIGH);
delay(delay_led_kuning);
}Untuk membuat led lain menunggu untuk menyala kita menggunakan perintah delay(), yang sebelumnya sudah kita pelajari. Masing-masing delay memiliki nilai berbeda-beda tergantung dari skenario yang kita inginkan.
Comments