(Soal cerita, panduan pengerjaan di Wokwi, kode Arduino, dan tugas lanjutan — langsung simulasikan)
📝 Soal Cerita
Pak Rudi adalah petugas lalu lintas di kota kecil. Ia diminta membuat sistem lampu lalu lintas sederhana untuk sebuah persimpangan yang hanya memiliki dua arah (Utara–Selatan dan Timur–Barat). Setiap arah memiliki tiga lampu: merah, kuning, hijau. Sistem harus memastikan tidak ada dua arah yang berwarna hijau bersamaan.
Syarat sistem:
- Urutan untuk setiap arah: Hijau → Kuning → Merah.
- Saat Utara–Selatan berwarna hijau, Timur–Barat harus merah, dan sebaliknya.
- Durasi yang digunakan (default): Hijau = 5 detik, Kuning = 2 detik, Merah = sesuai siklus.
Tugas Anda: Rangkai sirkuit di breadboard atau simulasikan di Wokwi, tulis program Arduino agar berjalan sesuai spesifikasi, dan kumpulkan hasil screenshot simulasi beserta penjelasan (10–15 baris).
📦 Komponen
- 1 × Arduino Uno (atau kompatibel)
- 6 × LED (2 merah, 2 kuning, 2 hijau)
- 6 × Resistor 220Ω
- Breadboard dan kabel jumper
- USB kabel (untuk daya) atau power 5V
🔌 Skema Singkat (teks)
Hijau → Pin 2 (via resistor)
Kuning → Pin 3 (via resistor)
Merah → Pin 4 (via resistor)
Timur–Barat:
Hijau → Pin 5 (via resistor)
Kuning → Pin 6 (via resistor)
Merah → Pin 7 (via resistor)
Semua katoda LED → GND Arduino.
(Untuk gambar wiring: rekomendasi upload PNG/SVG ke postingan atau lampirkan foto breadboard hasil siswa.)
💻 Kode Arduino (Copy → Paste ke Wokwi / Arduino IDE)
// Lampu Lalu Lintas 2 Arah (Utara-Selatan & Timur-Barat) // Pin assignment int US_hijau = 2; int US_kuning = 3; int US_merah = 4; int TB_hijau = 5; int TB_kuning = 6; int TB_merah = 7; // Durasi (ms) unsigned long t_hijau = 5000; // 5 detik unsigned long t_kuning = 2000; // 2 detik void setup() { pinMode(US_hijau, OUTPUT); pinMode(US_kuning, OUTPUT); pinMode(US_merah, OUTPUT); pinMode(TB_hijau, OUTPUT); pinMode(TB_kuning, OUTPUT); pinMode(TB_merah, OUTPUT); // Awal: Utara-Selatan Hijau, Timur-Barat Merah digitalWrite(US_hijau, HIGH); digitalWrite(US_kuning, LOW); digitalWrite(US_merah, LOW); digitalWrite(TB_hijau, LOW); digitalWrite(TB_kuning, LOW); digitalWrite(TB_merah, HIGH); } void loop() { // Arah 1: Utara-Selatan Hijau delay(t_hijau); // Arah 1: Kuning digitalWrite(US_hijau, LOW); digitalWrite(US_kuning, HIGH); delay(t_kuning); digitalWrite(US_kuning, LOW); // Arah 1: Merah, Arah 2: Hijau digitalWrite(US_merah, HIGH); digitalWrite(TB_merah, LOW); digitalWrite(TB_hijau, HIGH); delay(t_hijau); // Arah 2: Kuning digitalWrite(TB_hijau, LOW); digitalWrite(TB_kuning, HIGH); delay(t_kuning); digitalWrite(TB_kuning, LOW); // Reset: Arah 2 Merah, Arah 1 Hijau (loop akan lanjut) digitalWrite(TB_merah, HIGH); digitalWrite(US_merah, LOW); digitalWrite(US_hijau, HIGH); }
Catatan: jika ingin memperpendek waktu (mis. untuk demo), ubah t_hijau
dan t_kuning
(nilai dalam milidetik).
🧭 Langkah Pengerjaan di Wokwi (Langkah demi langkah)
- Buka wokwi.com → klik New Project → Arduino Uno.
- Tambahkan 6 LED dan 6 resistor dari panel komponen (drag & drop).
- Hubungkan LED sesuai daftar pin (pin → resistor → anoda LED → katoda ke GND).
- Ganti isi file sketch.ino di Wokwi dengan kode Arduino pada bagian Kode Arduino di atas.
- Klik Start Simulation → amati: Utara–Selatan hijau (5s) → kuning (2s) → merah & Timur–Barat hijau (5s) → ...
- Ambil screenshot simulasi dan sertakan keterangan hasil pengamatan (waktu, apa yang berubah, kendala jika ada).
🔎 Tugas Lanjutan (Soal HOTS)
- Modifikasi program agar ada fase all-red selama 1 detik (semua arah merah) sebagai transisi aman saat pergantian arah.
- Tambahkan tombol (push-button) yang bila ditekan memperpendek durasi hijau menjadi 3 detik (untuk kondisi low-traffic). Jelaskan logikanya.
- Buat versi simulasi yang menampilkan countdown (angka mundur) di konsol serial untuk setiap fase (hint: gunakan
Serial.begin()
dan tampilkan sisa detik).
(Tugas lanjutan dinilai: logika program 40%, implementasi di Wokwi 40%, dokumentasi & penjelasan 20%)
No comments:
Post a Comment