-->

Traffic Light Empat Jalan Lampu Merah

Traffic light atau banyak juga yang menyebutnya lampu merah, merupakan rangkaian lampu yang digunakan untuk mengatur lalu lintas kendaraan pada suatu persimpangan agar lancar dan tidak terjadi kecelakaan. Pengontrolan sistem penyalaan pada rangkaian traffic light dapat dilakukan dengan menggunakan Arduino. Dalam merangkai suatu rangkaian traffic light, kali ini akan dipaparkan pembuatan simulasi traffic light pada suatu perempatan jalan (simpang empat).

Bahan yang dibutuhkan antara lain:

1.  Arduino Uno Board      = 1 buah

2.  LED Merah                    = 4 buah

3.  LED Kuning                   = 4 buah

4.  LED Hijau                      = 4 buah

5.  Resistor 220 ohm         = 12 buah

6.  Kabel

Setelah bahan sudah lengkap, sekarang dibuat rangkaian traffic light menggunakan Jenis Lampu LED yang diperlihatkan pada gambar di bawah.

 Wiring Lampu Merah Empat Jalan

Pada rangkaian di atas, angka 2 hingga 13 dihubungkan ke Pin Digital pada Arduino Uno. Pin Digital 0 dan 1 tidak digunakan dengan tujuan agar pada saat rangkaian sudah dirangkai, tidak mengalami gangguan saat proses Uploading program. Rangkaian lampu di atas adalah aktif HIGH, yaitu lampu akan menyala jika diberi tegangan HIGH. Sebaliknya jika ingin mematikan lampu, maka pin harus diberi tegangan LOW.

Pada pembuatan simulasi rangkaian traffic light ini, waktu tunggu yang digunakan sebagai berikut:

-       Lampu Hijau menyala selama 5 detik

-       Lampu Kuning menyala selama 2 detik

-       Jeda antara jalan satu dengan yang lainnya selama 1 detik

Sebelum pembuatan program, terlebih dahulu dibuat flow chart (diagram alir) dari rangkaian traffic light. Pada kesempatan ini, dicontohkan pembuatan flow chart seperti pada gambar di bawah. 

Diagram Alir Lampu Merah Empat Jalan

Pada Program Utama terdapat 1 detik jeda waktu pergantian pada saat jalan Utara sudah berwarna Merah dan akan berganti ke lampu Hijau pada jalan Barat. Ini bertujuan memberikan waktu pada pengendara jalan Utara yang masih ada di tengah persimpangan agar dapat lewat, sehingga tidak tertabrak pengendara pada jalan Barat pada saat lampu sudah Hijau.

Pada Rutin Inisialisasi, pin difungsikan sebagai Output karena pin ini terhubung dengan lampu. Mematikan semua lampu pada pin 2 hingga 13 bertujuan untuk memastikan bahwa tidak ada lampu yang menyala. Sedangkan menghidupkan lampu warna Merah pada semua jalan (Utara, Barat, Selatan, dan Timur) bertujuan jika terjadi restart/refresh atau pada saat terjadi pemadaman aliran listrik dan hidup kembali, semua pengendara dihentikan untuk sementara waktu.

Pada Rutin Utara, lampu merah yang menyala akan dimatikan dan diganti dengan lampu hijau selama 5 detik. Setelah itu lampu hijau akan dimatikan dan diganti dengan lampu kuning selama 2 detik. Setelah 2 detik, lampu kuning akan dimatikan dan lampu merah dihidupkan. Rutin ini juga berlaku pada jalan Barat, Selatan, dan Timur.

Setelah memahami flow chart tersebut, sekarang mulai pada langkah pemrograman Arduino Uno. Contoh program Arduino Uno pada simulasi lampu merah pada perempatan jalan (simpang empat). Upload program tersebut dan lihatlah hasilnya.

void setup() {
  // put your setup code here, to run once:
  for (int x=2;x<14;x++) {
    pinMode (x, OUTPUT);  //Memfungsikan pin 2 hingga 13 sebagai OUTPUT
    digitalWrite (x, LOW);  //Mematikan semua lampu
  }
  //Menghidupkan lampu Merah jalan Utara, Barat, Selatan, Timur
  digitalWrite (2, HIGH);
  digitalWrite (5, HIGH);
  digitalWrite (8, HIGH);
  digitalWrite (11, HIGH);
  delay (2000);
}

void loop() {
  // put your main code here, to run repeatedly:
  Jalan_Utara ();
  delay (1000);
  Jalan_Barat ();
  delay (1000);
  Jalan_Selatan ();
  delay (1000);
  Jalan_Timur ();
  delay (1000);
}

void Jalan_Utara(){
  digitalWrite (2, LOW);
  digitalWrite (4, HIGH);
  delay (5000);
  digitalWrite (4, LOW);
  digitalWrite (3, HIGH);
  delay (2000);
  digitalWrite (3, LOW);
  digitalWrite (2, HIGH);
}

void Jalan_Barat(){
  digitalWrite (5, LOW);
  digitalWrite (7, HIGH);
  delay (5000);
  digitalWrite (7, LOW);
  digitalWrite (6, HIGH);
  delay (2000);
  digitalWrite (6, LOW);
  digitalWrite (5, HIGH);
}

void Jalan_Selatan(){
  digitalWrite (8, LOW);
  digitalWrite (10, HIGH);
  delay (5000);
  digitalWrite (10, LOW);
  digitalWrite (9, HIGH);
  delay (2000);
  digitalWrite (9, LOW);
  digitalWrite (8, HIGH);
}

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



Tidak ada komentar:

Posting Komentar

Tulis komentar dengan bijak tanpa unsur SARA, Politik, dan Pornografi.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel