Anda di halaman 1dari 5

Simulasi Traffic Light dan I2C di proteus menggunakan library PCF8574

Pada Project Kali ini saya akan membuat Simulasi Traffic Light dan I2C di proteus
menggunakan library PCF8574, menggunakan Arduino – Scroll Display ke Kiri. Pada
kesempatan inisaya akan menjelaskan mulai dari hardware dan software serta cara
kerjanya :
 [1]LM106L
 ArduinoUNO
 PCF8574 “untuk alamat I2C “PCF8574″ di Proteus adalah  0x27”
 Traffic Light

Berikut terlampir Scipt dan penjelasanya


#include <Wire.h> 

#include
<LiquidCrystal_I2C.h
>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Traffict Light IndoProteus
Untuk memberitahu arduino yang digunakan adalah port tersebut
int merah1 = 2;
int merah2 = 3;
int merah3 = 4;
int merah4 = 5;
int kuning1 = 6;
int kuning2 = 7;
int kuning3 = 8;
int kuning4 = 9;
int hijau1 = 10;
int hijau2 = 11;
int hijau3 = 12;
int hijau4 = 13;
int i;

void setup() {

Untuk mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini biasanya dipanggil
di dalam fungsi setup(). fungsi ini memerlukan dua parameter, pinMode([nomorPin],
[mode]). Parameter pertama diisi oleh nomor pin, dan parameter kedua diisi oleh
konstanta INPUT atau OUTPUT, sesuai dengan mode yang ingin kita gunakan
pinMode(merah1,OUTPUT);
pinMode(merah2,OUTPUT);
pinMode(merah3,OUTPUT);
pinMode(merah4,OUTPUT);
pinMode(kuning1,OUTPUT);
pinMode(kuning2,OUTPUT);
pinMode(kuning3,OUTPUT);
pinMode(kuning4,OUTPUT);
pinMode(hijau1,OUTPUT);
pinMode(hijau2,OUTPUT);
pinMode(hijau3,OUTPUT);
pinMode(hijau4,OUTPUT);
lcd.begin();
}

Untuk menerima input digital yang masuk ke pin, kita gunakan fungsi
digitalRead(nomorPin). Fungsi ini menerima satu parameter, yaitu nomor pin mana yang
akan dibaca nilai inputnya. Fungsi ini akan mengembalikan nilai 1 dan 0, atau HIGH dan
LOW (HIGH adalah konstanta dengan nilai 1 dan LOW adalah konstanta dengan nilai 0)

void loop(){
// Hidupkan H1 M2 M3 M4
digitalWrite(merah1,LOW);
digitalWrite(merah2,HIGH);
digitalWrite(merah3,HIGH);
digitalWrite(merah4,HIGH);
digitalWrite(kuning1,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(hijau1,HIGH);
digitalWrite(hijau2,LOW);
digitalWrite(hijau3,LOW);
digitalWrite(hijau4,LOW);
delay(2000);
// Matikan H1, HIDUPKAN K1 K2 M3 M4
digitalWrite(merah1,LOW);
digitalWrite(merah2,LOW);
digitalWrite(merah3,HIGH);
digitalWrite(merah4,HIGH);
digitalWrite(kuning1,HIGH);
digitalWrite(kuning2,HIGH);
digitalWrite(hijau4,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(hijau1,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(hijau3,LOW);
delay(800);
lcd.setCursor(16,0); Untuk member tahu LCD bahwa yang digunakan dari Cursor ke 16 di
atas (0)/1
lcd.print(“Hati Hati”); Perintah yang digunakan untuk menambilkan kata
lcd.setCursor(16,1);
lcd.print(“Sampai jumpa”);
for (i = 0 ; i < 16; i++)
{
lcd.scrollDisplayRight(); Untuk menampilkan layar dari kanan dengan delay 100ms
delay(100);
}
lcd.clear (); Perintah membersihkan layar LCD
1  

// Matikan K1 K2, HIDUPKAN H2 M1 M3 M4

digitalWrite(merah1,HIGH);
digitalWrite(merah2,LOW);
digitalWrite(merah3,HIGH);
digitalWrite(merah4,HIGH);
digitalWrite(kuning1,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(hijau1,LOW);
digitalWrite(hijau2,HIGH);
digitalWrite(hijau3,LOW);
digitalWrite(hijau4,LOW);
delay(2000);
1 // Matikan H2 M3, HIDUPKAN M1 K2 K3 M4                                       
digitalWrite(merah1,HIGH);
digitalWrite(merah2,LOW);
digitalWrite(merah3,LOW);
digitalWrite(merah4,HIGH);
digitalWrite(kuning1,LOW);
digitalWrite(kuning2,HIGH);
digitalWrite(kuning3,HIGH);
digitalWrite(kuning4,LOW);
digitalWrite(hijau1,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(hijau3,LOW);
digitalWrite(hijau4,LOW);
delay(800);
lcd.setCursor(16,0);
lcd.print(“Hati Hati”);
lcd.setCursor(16,1);
lcd.print(“Sampai jumpa!”);
for (i = 0 ; i < 16; i++)
{
lcd.scrollDisplayRight();
delay(100);
}
lcd.clear ();
1 // Matikan K2 K3, HIDUPKAN H3 M1 M2 M4                                       
digitalWrite(merah1,HIGH);
digitalWrite(merah2,HIGH);
digitalWrite(merah3,LOW);
digitalWrite(merah4,HIGH);
digitalWrite(kuning1,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(hijau1,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(hijau3,HIGH);
digitalWrite(hijau4,LOW);
delay(2000);
1 // Matikan H3 M4, HIDUPKAN M1 M2 K3 K4                                       
digitalWrite(merah1,HIGH);
digitalWrite(merah2,LOW);
digitalWrite(merah3,LOW);
digitalWrite(merah4,LOW);
digitalWrite(kuning1,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(kuning3,HIGH);
digitalWrite(kuning4,HIGH);
digitalWrite(hijau1,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(hijau3,LOW);
digitalWrite(hijau4,LOW);
delay(800);
lcd.setCursor(16,0);
lcd.print(“Hati Hati”);
lcd.setCursor(16,1);
lcd.print(“Sampai jumpa!”);
for (i = 0 ; i < 16; i++)
{
lcd.scrollDisplayRight();
delay(100);
}
lcd.clear ();
1 // Matikan K3 K4, HIDUPKAN H4 M1 M2 M3                                       
digitalWrite(merah1,HIGH);
digitalWrite(merah2,HIGH);
digitalWrite(merah3,HIGH);
digitalWrite(merah4,LOW);
digitalWrite(kuning1,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(hijau1,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(hijau3,LOW);
digitalWrite(hijau4,HIGH);
delay(2000);

[1] Berikut adalah Hasilnya:

Anda mungkin juga menyukai