Thursday, August 7, 2025

Soal Latihan Arduino — Lampu Lalu Lintas 2 Arah


(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:

  1. Urutan untuk setiap arah: Hijau → Kuning → Merah.
  2. Saat Utara–Selatan berwarna hijau, Timur–Barat harus merah, dan sebaliknya.
  3. 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)

Utara–Selatan:
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)

  1. Buka wokwi.com → klik New Project → Arduino Uno.
  2. Tambahkan 6 LED dan 6 resistor dari panel komponen (drag & drop).
  3. Hubungkan LED sesuai daftar pin (pin → resistor → anoda LED → katoda ke GND).
  4. Ganti isi file sketch.ino di Wokwi dengan kode Arduino pada bagian Kode Arduino di atas.
  5. Klik Start Simulation → amati: Utara–Selatan hijau (5s) → kuning (2s) → merah & Timur–Barat hijau (5s) → ...
  6. Ambil screenshot simulasi dan sertakan keterangan hasil pengamatan (waktu, apa yang berubah, kendala jika ada).

🔎 Tugas Lanjutan (Soal HOTS)

  1. Modifikasi program agar ada fase all-red selama 1 detik (semua arah merah) sebagai transisi aman saat pergantian arah.
  2. Tambahkan tombol (push-button) yang bila ditekan memperpendek durasi hijau menjadi 3 detik (untuk kondisi low-traffic). Jelaskan logikanya.
  3. 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

flowchat

Mulai Input Bilangan Bilangan % 2 = 0 ? Genap Ganjil S...