🚦 Soal Latihan Arduino — Lampu Lalu Lintas 4 Arah
(Soal cerita, panduan Wokwi, kode Arduino, dan tugas lanjutan — level lebih tinggi, 4 arah penuh)
📝 Soal Cerita
Kota Besar mulai menggunakan sistem lampu lalu lintas 4 arah (Utara, Selatan, Timur, Barat). Setiap arah memiliki tiga lampu: merah, kuning, hijau. Tantangan: Anda diminta membuat sistem lampu lalu lintas dengan aturan berikut:
- Urutan lampu setiap arah: Hijau → Kuning → Merah.
- Yang hijau hanya 1 arah dalam satu waktu (arah berlawanan tidak boleh sama-sama hijau).
- Durasi default: Hijau = 5 detik, Kuning = 2 detik, Merah = sesuai siklus.
- Urutan jalan: Utara → Timur → Selatan → Barat → kembali ke Utara.
Tugas Anda: Buat rangkaian di Wokwi (atau breadboard nyata), tulis program Arduino yang menjalankan aturan di atas, lalu screenshot hasil simulasi beserta penjelasan (10–15 baris).
📦 Komponen
- 1 × Arduino Uno
- 12 × LED (4 arah × 3 warna: merah, kuning, hijau)
- 12 × Resistor 220Ω
- Breadboard & kabel jumper
- USB kabel / power supply 5V
🔌 Skema Singkat (teks)
Utara: Hijau → Pin 2, Kuning → Pin 3, Merah → Pin 4
Timur: Hijau → Pin 5, Kuning → Pin 6, Merah → Pin 7
Selatan: Hijau → Pin 8, Kuning → Pin 9, Merah → Pin 10
Barat: Hijau → Pin 11, Kuning → Pin 12, Merah → Pin 13
Semua katoda LED → GND Arduino.
Timur: Hijau → Pin 5, Kuning → Pin 6, Merah → Pin 7
Selatan: Hijau → Pin 8, Kuning → Pin 9, Merah → Pin 10
Barat: Hijau → Pin 11, Kuning → Pin 12, Merah → Pin 13
Semua katoda LED → GND Arduino.
💻 Kode Arduino (Copy → Paste ke Wokwi / Arduino IDE)
// Lampu Lalu Lintas 4 Arah (Utara, Timur, Selatan, Barat)
int merahu = 2;
int kuningu = 3;
int hijauu = 4;
int meraht = 5;
int kuningt = 6;
int hijaut = 7;
int merahs = 8;
int kunings = 9;
int hijaus = 10;
int merahb = 11;
int kuningb = 12;
int hijaub = 13;
void setup() {
pinMode(merahu, OUTPUT);
pinMode(kuningu, OUTPUT);
pinMode(hijauu, OUTPUT);
pinMode(meraht, OUTPUT);
pinMode(kuningt, OUTPUT);
pinMode(hijaut, OUTPUT);
pinMode(merahs, OUTPUT);
pinMode(kunings, OUTPUT);
pinMode(hijaus, OUTPUT);
pinMode(merahb, OUTPUT);
pinMode(kuningb, OUTPUT);
pinMode(hijaub, OUTPUT);
}
void loop() {
digitalWrite(hijauu, HIGH);
digitalWrite(meraht, HIGH);
digitalWrite(merahs, HIGH);
digitalWrite(merahb, HIGH);
delay(5000);
digitalWrite(hijauu, LOW);
digitalWrite(kuningu, HIGH);
delay(2000);
digitalWrite(kuningu, LOW);
digitalWrite(merahu, HIGH);
digitalWrite(hijaut, HIGH);
digitalWrite(meraht, LOW);
delay(5000);
digitalWrite(hijaut, LOW);
digitalWrite(kuningt, HIGH);
delay(2000);
digitalWrite(kuningt, LOW);
digitalWrite(meraht, HIGH);
digitalWrite(hijaus, HIGH);
digitalWrite(merahs, LOW);
delay(5000);
digitalWrite(hijaus, LOW);
digitalWrite(kunings, HIGH);
delay(2000);
digitalWrite(kunings, LOW);
digitalWrite(hijaub, HIGH);
digitalWrite(merahs, HIGH);
digitalWrite(merahb, LOW);
delay(5000);
digitalWrite(hijaub, LOW);
digitalWrite(kuningb, HIGH);
delay(2000);
digitalWrite(kuningb, LOW);
digitalWrite(merahb, HIGH);
digitalWrite(merahu, LOW);
}
Catatan: Semua arah dimulai merah, lalu bergantian 1 arah hijau → kuning → merah.
🧭 Langkah Pengerjaan di Wokwi
- Buka wokwi.com → New Project → Arduino Uno.
- Tambahkan 12 LED dan 12 resistor (3 per arah × 4 arah).
- Hubungkan LED sesuai skema pin di atas.
- Salin kode Arduino ke file sketch.ino.
- Klik Start Simulation → amati siklus: Utara (5s hijau) → kuning (2s) → merah → lalu Timur → Selatan → Barat → kembali Utara.
- Screenshot hasil simulasi dan beri penjelasan singkat.
🔎 Tugas Lanjutan (Level HOTS)
- Tambahkan fase all-red 1 detik sebelum setiap arah hijau (transisi aman).
- Tambahkan 4 tombol (masing-masing arah) sebagai tombol darurat polisi, yang bila ditekan memaksa arah itu hijau lebih cepat.
- Gunakan
Serial Monitoruntuk menampilkan arah mana yang hijau sekarang, dan hitungan mundur sisa detik. - Modifikasi menjadi sistem 2 arah berlawanan boleh hijau bersamaan (Utara–Selatan & Timur–Barat), lalu bandingkan logikanya.
No comments:
Post a Comment