Bab 10

Membuat Rambu Lalu Lintas

oleh: Suryo Adhy Chandra, ST

Logika Rambu Lalu Lintas

Logika dalam pembuatan rambu lalu lintas adalah:

Dalam penyusunan rangkaian kita memerlukan protoboard, tetapi dalam percobaan di dalam website hanya akan ditampilkan simulator langsung menggunakan kabel yang tertancap ke PIN yang dibutuhkan.

Untuk melakukan pengaturan waktu untuk menyala dan mati dari lampu-lampu tersebut kita menggunakan kata kunci:

delay(nilai)
Di mana untuk nilai yang dimasukkan adalah dalam satuan mili detik, sehingga kalau kita akan menyalakan selama 2 detik kita harus memasukkan
delay(2000)

Susunan rangkaian tanpa protoboard adalah sebagai berikut:

Logika Berpikir dalam Pembuatan Coding

Dalam berpikir sebelum kita membuat coding dalam bahasa C adalah:

  1. Lampu merah menyala kira-kira 5 detik
  2. Lampu merah dimatikan dan lampu kuning menyala selama 2 detik
  3. Lampu kuning dimatikan dan lampu hijau
  4. Lampu hijau dimatikan dan kembali ke nomor 1
Apakah dapat logikanya? kalau suda dapat kita masuk ke section di bawah melihat daftar script coding.

Script Coding C Arduino

void setup() {
    pinMode(13,1);
    pinMode(12,1);
    pinMode(11,1);
}

void loop() {
    digitalWrite(13, HIGH);
    delay(5000);
    digitalWrite(13, LOW);
    digitalWrite(12, HIGH);
    delay(2000);
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
    delay(5000);
    digitalWrite(11, LOW);
}
    

Sekarang kalian coba terlebih dahulu menggunakan protoboard di kelas. Kalau belum berhasil boleh hubungi kami di nomor yang tertera di bagian bawah situs ini.
Nah setelah kalian bisa, silakan berkesperimen dengan:

Untuk melihat simulasinya silakan masuk ke situs Rambu Lalu Lintas

Selamat Bereksperimen!

Menghitung dan memilih resistor

Setiap LED memerlukan resistor pembatas arus. Untuk LED merah dan kuning, penurunan tegangannya sekitar 2 V, sedangkan LED hijau sekitar 2 sampai 3 V. Dengan pasokan pin 5 V, resistor 330 ohm menghasilkan arus kira-kira 9 mA untuk LED merah, cukup terang dan aman. Resistor 220 ohm menghasilkan arus sekitar 14 mA, dan 470 ohm membuat LED lebih redup. Satu resistor dipasang untuk setiap LED dan hindari berbagi satu resistor untuk beberapa LED.

Wiring dengan breadboard

  1. Tancapkan tiga LED pada breadboard dengan jarak beberapa lubang. Kaki panjang (anoda) menghadap sisi pin Arduino.
  2. Dari pin 13 sambungkan kabel ke resistor 330 ohm, lalu ujung resistor ke anoda LED merah.
  3. Dari pin 12 ke resistor lalu anoda LED kuning. Dari pin 11 ke resistor lalu anoda LED hijau.
  4. Semua katoda (kaki pendek) disambung ke satu jalur biru atau jalur negatif breadboard, lalu satu kabel dari jalur itu ke pin GND Arduino.

Kalau satu LED tidak menyala sementara yang lain normal, periksa polaritas LED tersebut dan pastikan kabelnya masuk di baris yang sama dengan resistor.

Versi kode yang lebih rapi

const int MERAH = 13;
const int KUNING = 12;
const int HIJAU = 11;

void nyala(int pin, int lama) {
  digitalWrite(pin, HIGH);
  delay(lama);
  digitalWrite(pin, LOW);
}

void setup() {
  pinMode(MERAH, OUTPUT);
  pinMode(KUNING, OUTPUT);
  pinMode(HIJAU, OUTPUT);
}

void loop() {
  nyala(MERAH, 5000);
  nyala(HIJAU, 5000);
  for (int i = 0; i < 3; i++) {
    nyala(KUNING, 300);
    delay(300);
  }
}

Penjelasan. Tiga konstanta memberi nama yang jelas pada setiap pin, sehingga kode terbaca seperti urutan lampu sesungguhnya. Fungsi nyala(pin, lama) menyalakan satu lampu selama waktu tertentu lalu mematikannya, sehingga tidak ada lampu yang lupa dimatikan. Pada loop() lampu merah menyala 5 detik, hijau menyala 5 detik, lalu kuning berkedip tiga kali sebagai peringatan sebelum kembali ke merah. Jika dibandingkan dengan urutan pada contoh di atas, bedanya urutan hijau dan kuning disesuaikan dengan lampu lalu lintas sesungguhnya, yakni merah, hijau, kuning.

Menambah lampu penyeberangan

Untuk kelanjutan, tambahkan satu LED biru atau putih pada pin 10 sebagai lampu pejalan kaki. Nyalakan lampu itu hanya saat lampu merah menyala. Kamu cukup menambahkan konstanta PEJALAN = 10, pinMode(PEJALAN, OUTPUT), dan menyalakan pin itu bersama lampu merah dengan dua perintah digitalWrite sebelum delay. Ingat untuk memberikan resistor sendiri pada setiap LED tambahan.

Tips keselamatan listrik

Kesalahan yang sering terjadi

Ringkasan

Rambu lalu lintas adalah urutan keadaan: setiap lampu menyala selama waktu tertentu, lalu giliran lampu berikutnya. Perencanaan urutan di atas kertas membuat kode lebih mudah ditulis. Resistor menjaga LED tetap awet, dan konstanta serta fungsi menjaga program tetap rapi.

Soal latihan

  1. Mengapa setiap LED memerlukan resistornya sendiri?
    Lihat jawaban

    Agar arus tiap LED dibatasi dengan benar. Tanpa resistor LED bisa terbakar dan pin Arduino bisa rusak.

  2. Berapa milidetik nilai delay untuk menyala selama 7 detik?
    Lihat jawaban

    7000 milidetik, yaitu delay(7000).

  3. Apa akibatnya jika lupa mematikan lampu merah sebelum menyalakan hijau?
    Lihat jawaban

    Kedua lampu menyala bersamaan karena pin merah tetap HIGH.

  4. Pin mana saja yang dipakai pada contoh ini dan apa warnanya?
    Lihat jawaban

    Pin 13 untuk merah, pin 12 untuk kuning, dan pin 11 untuk hijau.

← Kembali Ke Daftar Pelajaran Arduino