SIMULASI TRAFFI 4 JALUR ARDUINO UNO dengan I2C LCD TRAFFI C LIGHT LIGHT 4 Mayang Fauni (14640051)
4
7
10
6
9
5
8
13
3
12
2
11
Traffic light adalah lampu yang digunakan untuk mengatur kelancaran lalu l intas di suatu persimpangan persimpangan jalan dengan cara memberi memberi kesempatan kesempatan pengguna jalan dari masing-masing masing-masing arah untuk berjalan secara bergantian. Karena fungsinya yang begitu penting maka lampu lalu lintas harus dapat dikendalikan atau dikontrol semudah dan seefisien mungkin guna memperlancar arus lalu lintas di suatu persimpangan persimpangan jalan. Cara kerja lampu lalu lintas sendiri tergantung pada berapa banyak jalur yang ada. Pada kali ini simulasi yang dibuat adalah simulasi lampu lalu lintas pada 4 jalur, cara kerjanya sendiri yaitu ketika lampu hijau pada arah utara dan selatan dan lampu merah pada arah timur dan barat selama beberapa detik, lalu lampu hijau berganti dengan warna kuning menunjukan tanda peralihan sedangkan sedangkan untuk lampu merah pada arah timur dan barat masih menyala. menyala. Kemudian setelah beberapa detik lampu kuning berganti menjadi warna merah bertanda pengendara harus berhenti, dan pada arah timur dan barat lampu merah berganti menjadi warna kuning setelah beberapa detik lampu kuning berganti menjadi warna hijau menandakan menandakan pengendara pengendara harus berjalan kembali kembali begitu seterusnya. seterusnya.
] e m a n y n a p m o c e h t e p y T [
Alat dan Bahan yang digunakan adalah: 1. Arduino UNO dan Software Arduino IDE 2. Laptop 3. Protoboard 4. Lampu LED 12 buah 5.
Resistor 1KΩ 4 buah
6. Kabel jumper 7. I2C 8. LCD 20cmx2cm
] e m a n y n a p m o c e h t e p y T [
Langkah-langkah membuat Tra Tr affic ffi c Li ght dengan Arduino UNO 1. Mempersiapkan LED dengan Arduino
Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan memancarkan cahaya monokromatik monokromatik ketika diberikan tegangan maju. maju. Untuk mengetahui polaritas terminal Anoda (+) dan Katoda (-) pada LED. Ciri-ciri Terminal Anoda pada LED adalah adalah kaki yang lebih panjang panjang dan juga Lead Lead Frame Frame yang lebih kecil. Sedangkan Sedangkan ciri-ciri Terminal Katoda adalah Kaki yang lebih pendek dengan Lead Frame yang besar serta terletak di sisi yang Flat. 2. Merangkai alat seperti gambar dibawah ini :
2
Pada kasus kali ini dipasang masing-masing LED pada projectboard sehingga membentuk traffic light 4 jalan, kaki-kaki katoda dihubungkan dengan masing-masing resistor sebesar 1000 Ohm digunakan untuk menghambat tegangan yang masuk. Sedangkan kaki anoda dihubungkan ke PIN Arduino. Untuk memudahkan memudahkan pemasangan bisa dilihat tabel dibawah ini: PIN Arduino
LED
PIN 2
Merah 1
PIN 3
Yellow 1
PIN 4
Green 1
PIN 5
Merah 2
PIN 6
Yellow 2
PIN 7
Green 2
PIN 8
Merah 3
PIN 9
Yellow 3
PIN 10
Green 3
PIN 11
Merah 4
PIN 12
Yellow 4
PIN 13
Green 4
] e m a n y n a p m o c e h t e p y T [
GND
3. Menghubungkan Arduino dengan I2C LCD
3
Setelah kita merangkai rangkaian traffic light 4 jalan yang dihubungkan dengan Arduino seperti gambar diatas. Langkah selanjutnya yaitu menghubungkan Arduino uno dengan I2C LCD. Inter LCD. Inter Integrated Circuit atau atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial (Serial Clock ) dan SDA (Serial (Serial Data) Data) yang membawa informasi data antara I 2C dengan pengontrolnya. Untuk menghubungkan menghubungkan Arduino dengan I2C bisa dilhat pada port I2C yang terhubung pada PIN Arduino.
] e m a n y n a p m o c e h t e p y T [
4
Vcc I2C
Pin 5V Arduino
GND
Pin GND Arduino
SCL
A4 Arduino
SDA
A5 Arduino
4. Memprogram Arduino dan Mengupload Langkah selanjutnya setelah setelah
sirkuit selesai selesai di buat. buat. Kemudian membuat membuat program program
arduinonya dengan outputan yang diinginkan yaitu Timer dan teks berupa warna LED pada setiap keadaan. Code pemrograman I2C dengan Arduino adalah sebagai berikut: #include #include LiquidCrystal_I2C lcd(0x23F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); POSITIVE);
pinMode(11,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); pinMode(12,OUTPUT); pinMode(13,OUTPUT); pinMode(13,OUTPUT); }
int TimePoint=0; int M1=7; int M2=7; int K=4; int H=4;
void loop() { lcd.clear(); for(int Timepoint=1 Ti mepoint=1;; Timepoint<=12; Timepoint<=12; Timepoint++){ if(Timepoint<=3){ digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,HIGH); digitalWrite(8,HIGH); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); digitalWrite(13,HIGH); M1--;
void setup() { Serial.begin(9600); lcd.begin(20,4); pinMode(2,OUTPUT); pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(10,OUTPUT);
H--; Serial.print("Tiang Serial.print("Tiang 1 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M1); Serial.print("Tiang Serial.print("Tiang 2 "); Serial.print("HIJAU Serial.print("HIJAU "); Serial.println(H); Serial.print("Tiang Serial.print("Tiang 3 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M1); Serial.print("Tiang Serial.print("Tiang 4 "); Serial.print("HIJAU Serial.print("HIJAU "); Serial.println(H); K=4; lcd.setCursor(0,0); lcd.print("T1&T3: lcd.print("T1&T3: "); lcd.setCursor(7,0); lcd.print("MERAH"); lcd.setCursor(15,0); lcd.print(M1); lcd.setCursor(0,1); lcd.print("T2&T4: lcd.print("T2&T4: "); lcd.setCursor(7,1); lcd.print("HIJAU"); lcd.setCursor(15,1); lcd.print(H); } else if((Timepoint>3)&&(Timepoint<=6)) { digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(8,HIGH); digitalWrite(9,LOW); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,HIGH); digitalWrite(13,LOW); M1--; K--; Serial.print("Tiang Serial.print("Tiang 1 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M1); Serial.print("Tiang Serial.print("Tiang 2 "); Serial.print("KUNING Serial.print("KUNING "); Serial.println(K); Serial.print("Tiang Serial.print("Tiang 3 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M1);
Serial.print("Tiang Serial.print("Tiang 4 "); Serial.print("KUNING Serial.print("KUNING "); Serial.println(K); H=4; M2=7; lcd.setCursor(0,0); lcd.print("T1&T3: lcd.print("T1&T3: "); lcd.setCursor(7,0); lcd.print("MERAH"); lcd.setCursor(15,0); lcd.print(M1); lcd.setCursor(0,1); lcd.print("T2&T4: lcd.print("T2&T4: "); lcd.setCursor(7,1); lcd.print("KUNING"); lcd.setCursor(15,1); lcd.print(K); } else if((Timepoint>6)&&(Timepoint<=9)) { digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,HIGH); digitalWrite(11,HIGH); digitalWrite(12,LOW); digitalWrite(13,LOW); M2--; H--; Serial.print("Tiang Serial.print("Tiang 1 "); Serial.print("HIJAU Serial.print("HIJAU "); Serial.println(H); Serial.print("Tiang Serial.print("Tiang 2 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M2); Serial.print("Tiang Serial.print("Tiang 3 "); Serial.print("HIJAU Serial.print("HIJAU "); Serial.println(H); Serial.print("Tiang Serial.print("Tiang 4 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M2); K=4; lcd.setCursor(0,0); lcd.print("T1&T3: lcd.print("T1&T3: "); lcd.setCursor(7,0); lcd.print("HIJAU"); lcd.setCursor(15,0);
] e m a n y n a p m o c e h t e p y T [
5
lcd.print(H); lcd.setCursor(0,1); lcd.print("T2&T4: lcd.print("T2&T4: "); lcd.setCursor(7,1); lcd.print("MERAH"); lcd.setCursor(15,1); lcd.print(M2);
] e m a n y n a p m o c e h t e p y T [
} else if((Timepoint>9)&&(Timepoint<=12) ){ digitalWrite(2,LOW); digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,HIGH); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(9,HIGH); digitalWrite(10,LOW); digitalWrite(11,HIGH); digitalWrite(12,LOW); digitalWrite(13,LOW); M2--; K--; Serial.print("Tiang Serial.print("Tiang 1 "); Serial.print("KUNING Serial.print("KUNING "); Serial.println(K);
Serial.print("Tiang Serial.print("Tiang 2 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M2); Serial.print("Tiang Serial.print("Tiang 3 "); Serial.print("KUNING Serial.print("KUNING "); Serial.println(K); Serial.print("Tiang Serial.print("Tiang 4 "); Serial.print("MERAH Serial.print("MERAH "); Serial.println(M2); H=4; M1=7; lcd.setCursor(0,0); lcd.print("T1&T3: lcd.print("T1&T3: "); lcd.setCursor(7,0); lcd.print("KUNING"); lcd.setCursor(15,0); lcd.print(K); lcd.setCursor(0,1); lcd.print("T2&T4: lcd.print("T2&T4: "); lcd.setCursor(7,1); lcd.print("MERAH"); lcd.setCursor(15,1); lcd.print(M2); } delay(3000); } }
Demikian penjelasan Simulasi Traffic Light dengan 4 jalan dengan Arduino dan I2C LCD. Semoga bermanfaat guuyss..! See You Next Time.
6