Proyek Sederhana Sistem Lampu Lalu Lintas Mini Merah Kuning Hijau dengan Arduino AVR Mikrokontroller

- Gambar Ads

Prolog

Proyek kali ini cukup sederhana dan hal yang sering kita jumpai, yaitu Sistem Lampu Lalu Lintas Mini.

Sistem Lampu Lalu Lintas yang kita ketahui menggunakan 3 lampu berwarna merah, kuning, dan hijau.

Untuk menjalankan sistem ini kita akan mengatur nyala lampu merah beberapa detik lalu menyalakan lampu hijau selama beberapa detik juga, kemudian kita kedipkan lampu kuning 3 kali, menyalakan lampu merah kembali dan sistem ini berulang terus menerus.

Untuk proyek kali ini kita akan menggunakan pengontrol sistem dengan Mikrokontroller AVR yang mana kita menggunakan prototype-nya yang bernama Arduino.

Untuk jelasnya sebelum melangkah ke proyek kali ini, cek dulu Apa itu Arduino ? dan Pemrograman Dasar Arduino untuk Pemula...



Proyek Sistem Lalu Lintas Mini

Persiapkan Bahan dan Alat yang dibutuhkan...

Sebelum melangkah ke bahan dan alat, pahami dulu materi yang akan berguna dalam proyek kali ini, yaitu :
- Apa itu Arduino ?
- Komponen komponen pada Arduino Uno ?
- Panduan Pemrograman Dasar Arduino ?

Selanjutnya Komponen yang dibutuhkan :
- 1 x Arduino Uno R3 atau Arduino Jenis lain
- 1 x Kabel Arduino ke USB Komputer / Laptop
- 1 x Breadboard / ProjectBoard
- 1 x LED Merah
- 1 x LED Kuning
- 1 x LED Hijau
- 3 x Resistor 270 Ohm
- Kabel Jumper Male Male secukupnya.

Komponen-komponen diatas bisa kalian dapatkan ditoko elektronik terdekat agan, namun untuk Arduino dan Kabel Jumper bisa agan dapatkan di toko Online kami ELECTRONICS BOT Store ya :)


Merangkai Komponen-komponen Sistem Lampu Lalu Lintas Mini di Breadboard ..

Sebelum mulai merangkai komponen pada Breadboard, kita harus menentukan hubungan dan jalur dari komponen-komponen tersebut di dalam sistem yang kita inginkan.

Kita kontruksikan sistem lalu lintas seperti berikut :
- Lampu Merah dinyalakan beberapa detik, berarti Hubungkan LED Merah dengan Pin Digital Arduino ke 2
- Lampu Kuning dinyalakan beberapa detik, Hubungkan juga LED Kuning dengan Pin Digital Arduino ke 3
- Lampu Hijau dinyalakan beberapa detik, terkakhir hubungkan LED Hijau dengan Pin Digital Arduino ke 4

Dari data diatas berarti kita perlu menghubungkan pin positif Lampu ke Pin Digital Arduino agar nantinya dapat kita atur nyala tidaknya lampu tersebut dengan program Arduino.

Mengingat output atau keluaran tegangan dari pin digital Arduino bernilai 5V dan Lampu memerlukan arus sekitar 22 mA maka kita berikan resistor sebesar 5V / 22 mA = kurang lebih 270 Ohm, maka dari itu resistor tersebut ada dalam daftar bahan yang kita perlukan.

Dan sisanya kita hubungkan pin negatif masing-masing lampu ke Kutub Negatif atau ke Pin GND Arduino.

Akhirnya Rangkaian dapat dirangkai sebagai berikut :


Mengingat Rangkaian tidak harus sama presisi letak kabel dan Lampunya ya, tetapi cukup perhatikan agar setiap bagian komponen terhubung semestinya ya ;)


Menulis dan Mengupload Program Sistem Lalu Lintas Mini ke Arduino

Sebelum melangkah lebih jauh, cek terlebih dahulu Prosedur Mengupload Program ke Arduino dan Panduan Dasar Memprogram Arduino ya ;)

Selanjutnya kita Mulai Mengkontruksikan langkah-langkah kerja sistem dan merubahnya menjadi perintah dalam bentuk Bahasa Arduino.

Deklarasi dan Set Up atau Pengaturan awal

Bagian awal dari Program adalah bagian deklarasi variable dan Pengaturan Awal.

Kode yang Deklarasi diletakkan sebelum fungsi setup() yang ada dalam program Arduino.

Dalam hal ini, kita perlu mendeklarasikan Variable pin Lampu Merah, pin Lampu Kuning, dan pin Lampu Hijau.
int pin_Merah = 2;
int pin_Kuning = 3;
int pin_Hijau = 4;
Kita buat juga Variable selang waktu lampu-lampu menyala, Variablenya kita namakan Delay merah, kuning dan Hijau.

Jadi kita tambahkan kode lagi berikut ..
int delay_Merah;
int delay_Kuning;
int delay_Hijau;
Kita beri nilai setiap variable delay dengan waktu lampu yang bersangkutan menyala.

Misalkan kita ingin lampu merah menyala 5 detik, lampu kuning menyala 1 detik dan lampu hijau menyala 3 detik, kita tambahkan nilainya ke Variable Delay masing-masing lampu.

Kode delay kita tambahkan nilainya menjadi ..
int delay_Merah = 5000;
int delay_Kuning = 1000;
int delay_Hijau = 3000;
Mengapa 5 Detik bernilai 5000 ? karena satuan yang digunakan adalah milis detik atau mS yang mana 1 Detik bernilai 1000 mS, jadi 5 Detik menjadi 5000.


Mengimplementasikan Proses dari Sistem Lalu Lintas Mini

Selanjutnya kita mulai menulis proses dari sistem yang mana akan dijalankan secara terus - menerus.

Karena sistem lalu lintas itu berjalan berulang-ulang maka kode programnya kita masukkan ke dalam fungsi loop().


1. Menyalakan Lampu Merah 5 Detik Kemudian dimatikan kembali

Lebih Detailnya kalian bisa pelajari dulu Mengedipkan Lampu dengan Arduino ya ;)

Kita nyalakan lampu merah dengan fungsi digitalWrite() dengan masukan pin dari lampu merah yaitu pin_Merah dan kondisi yang diinginkan.

Kondisi yang dinginkan adalah menyala, jadi kita masukkan kondisi "HIGH", sebaliknya jika ingin dimatikan kita masukkan kondisi "LOW".

Kita jeda selang 5 detik delay dengan fungsi delay() dengan masukan nilai delay yang diinginkan yaitu variable delay_Merah.

Terakhir kita matikan kembali lampu merahnya dengan fungsi digitalWrite() tetapi dengan kondisi mati atau "LOW".

Kodenya menjadi :
digitalWrite( pin_Merah, HIGH );
delay( delay_Merah );
digitalWrite( pin_Merah, LOW );


2. Kita Kedipkan Lampu Kuning 1 detik sekali sebanyak 3 Kali

Untuk mengedipkan 1 detik sekali, caranya kita nyalakan lampu setengah detik kemudian dimatikan setengah detik, jika diulang maka akan nyala mati nyala mati dengan total nyala mati 1 detik.

Maka seperti halnya menyalakan lampu merah, kita cukup mengganti variable masukan pin_Merah menjadi pin_Kuning dan delay_Kuning.

Maka kodenya menjadi ..
digitalWrite( pin_Kuning, HIGH );
delay( delay_Kuning / 2 );

digitalWrite( pin_Kuning, LOW );
delay( delay_Kuning / 2 );
Mengapa variable delay_Kuning dibagi 2 ?

Karena lampu kuning akan dikedipkan 1 detik, jadi waktu dibagi menjadi 2, yaitu 1/2 detik untuk menyala kondisi HIGH dan 1/2 detik untuk mati kondisi LOW.

Kemudian kita mengedipkan lampu sebanyak 3 kali, jadi kita bisa menulis program kedipan diatas 3 kali, menjadi ..
digitalWrite( pin_Kuning, HIGH );
delay( delay_Kuning / 2 );

digitalWrite( pin_Kuning, LOW );
delay( delay_Kuning / 2 );

digitalWrite( pin_Kuning, HIGH );
delay( delay_Kuning / 2 );

digitalWrite( pin_Kuning, LOW );
delay( delay_Kuning / 2 );

digitalWrite( pin_Kuning, HIGH );
delay( delay_Kuning / 2 );

digitalWrite( pin_Kuning, LOW );
delay( delay_Kuning / 2 );
Kode diatas dapat saja kita singkat dengan Perulangan / Looping yang bisa kalian cek Perulangan atau Looping dalam Bahasa Arduino, sehingga kode program menjadi ..

for( int i = 1; i <= 3; i++ ){
 digitalWrite( pin_Kuning, HIGH );
 delay( delay_Kuning / 2 );

 digitalWrite( pin_Kuning, LOW );
 delay( delay_Kuning / 2 );
}

Menjadi lebih singkat bukan ?

Apakah penulisan panjang dan singkat berpengaruh terhadap proses yang sebenarnya ?

Jawabannya tidak, tetapi itu akan mempercepat proses penulisan kode, kalau bisa singkat kenapa harus panjang-panjang ?


3. Terakhir kita Nyalakan Lampu Hijau 3 detik dan Dimatikan Kembali

Sama halnya dengan kode-kode sebelumnya, kita cukup mengubah variable pin_Merah menjadi pin_Hijau dan variable delay_Merah menjadi delay_Hijau.

Dan kodenya menjadi ..
digitalWrite( pin_Hijau, HIGH );
delay( delay_Hijau);
digitalWrite( pin_Hijau, LOW ); 


4. Kita gabungkan kodenya dan kita masukkan ke dalam fungsi Loop()

Selanjutnya kita gabung kodenya dan masukkan ke dalam fungsi loop() agar proses lalu lintas ini akan diulang setelah lampu hijau dimatikan.


Menggabungkan bagian Deklarasi dan Pengaturan Awal bersama proses Inti dari Sistem

Langkah terakhir yaitu Menggabungkan kode deklarasi, bagian pengaturan awal ( fungsi setup() ) dan bagian proses inti ( fungsi loop() ).

Maka hasil total kodenya sebagai berikut ..
/* Proyek Sistem Lalu Lintas Mini dengan Arduino bersama Electronics Bot */

// Bagian Deklarasi
int pin_Merah = 2;
int pin_Kuning = 3;
int pin_Hijau = 4;

int delay_Merah = 5000;
int delay_Kuning = 1000;
int delay_Hijau = 3000;

// Bagian Pengaturan awal
void setup() {

 // fungsi ini kita kosongkan karena memang pengaturan nilai dan pin sudah dilakukan pada bagian deklarasi
 // Kedepannya kita akan gunakan fungsi ini pada artikel selanjutnya :)

}

// Bagian Proses Inti yang akan diulang terus-menerus
void loop(){
 digitalWrite( pin_Merah, HIGH );
 delay( delay_Merah ); digitalWrite( pin_Merah, LOW );

 for( int i = 1; i <= 3; i++ ){
  digitalWrite( pin_Kuning, HIGH );
  delay( delay_Kuning / 2 );
 
  digitalWrite( pin_Kuning, LOW );
  delay( delay_Kuning / 2 );
 }

 digitalWrite( pin_Hijau, HIGH );
 delay( delay_Hijau);
 digitalWrite( pin_Hijau, LOW );

 // setelah lampu hijau dimatikan, proses kembali ke awal fungsi ini yaitu lampu merah dinyalakan.
}

Kode diatas sudah sempurna dan langkah selanjutnya yaitu Klik tombol "Compile" untuk mengecek apakah ada kesalahan.

Jika masih terdapat error bisa cek di artikel Kesalahan Umum saat Compile Program Arduino dan jangan lupa komentar di bawah ya ;)

Selanjutnya kalian pilih bagian tools -> Port -> Pilih Port Arduino Uno biasanya bernama COM, contoh COM3 atau COM5

Setelah tidak ada error maka lanjut tekan tombol "Upload" dan tunggu proses Upload selesai.

Akhirnya program berjalan dan kalian bisa melihat hasilnya Apakah yang terjadi dengan lampu-lampu yang kamu rangkai pada Breadboard.



Penutup

Demikian akhir dari artikel Proyek Sederhana Sistem Lampu Lalu Lintas Mini kali ini.

Untuk proyek selanjutnya bisa cek Panduan Belajar Arduino dari Nol dan Proyek-proyek Arduino Sederhana di Rumah

Jangan lupa sertakan saran dan kritik untuk Artikel kali ini di kolom komentar ya ;) Dan tentunya sertakan hasil foto proyek kalian ya ;)


Postingan terkait:

1 Tanggapan untuk "Proyek Sederhana Sistem Lampu Lalu Lintas Mini Merah Kuning Hijau dengan Arduino AVR Mikrokontroller"