#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD dan ukuran baris/kolom
// Mendefinisikan pin LED untuk persimpangan 1
const int R1 = 3;
const int Y1 = 4;
const int G1 = 5;
// Mendefinisikan pin LED untuk persimpangan 5
const int R5 = 8;
const int Y5 = 9;
const int G5 = 10;
// Mendefinisikan pin LED untuk persimpangan 4
const int R4 = 44;
const int Y4 = 46;
const int G4 = 48;
// Mendefinisikan pin LED untuk persimpangan 3
const int R3 = 33;
const int Y3 = 35;
const int G3 = 37;
// Mendefinisikan pin LED untuk persimpangan 2
const int R2 = 25;
const int Y2 = 23;
const int G2 = 22;
void setup() {
// Inisialisasi LCD
lcd.init();
lcd.backlight();
// Mengatur pin LED sebagai output
pinMode(R1, OUTPUT);
pinMode(Y1, OUTPUT);
pinMode(G1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(Y2, OUTPUT);
pinMode(G2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(Y3, OUTPUT);
pinMode(G3, OUTPUT);
pinMode(R4, OUTPUT);
pinMode(Y4, OUTPUT);
pinMode(G4, OUTPUT);
pinMode(R5, OUTPUT);
pinMode(Y5, OUTPUT);
pinMode(G5, OUTPUT);
}
void loop() {
// Kondisi 1
digitalWrite(R1, LOW);
digitalWrite(Y1, LOW);
digitalWrite(G1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 2
digitalWrite(R1, LOW);
digitalWrite(Y1, HIGH);
digitalWrite(G1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, LOW);
digitalWrite(Y5, HIGH);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 3
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, LOW);
digitalWrite(Y5, LOW);
digitalWrite(G5, HIGH);
delay(5000); // Menyala selama 5 detik
// Kondisi 4
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, LOW);
digitalWrite(Y4, HIGH);
digitalWrite(G4, LOW);
digitalWrite(R5, LOW);
digitalWrite(Y5, HIGH);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 5
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, LOW);
digitalWrite(Y4, LOW);
digitalWrite(G4, HIGH);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 6
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, LOW);
digitalWrite(Y3, HIGH);
digitalWrite(G3, LOW);
digitalWrite(R4, LOW);
digitalWrite(Y4, HIGH);
digitalWrite(G4, LOW);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 7
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(Y2, LOW);
digitalWrite(G2, LOW);
digitalWrite(R3, LOW);
digitalWrite(Y3, LOW);
digitalWrite(G3, HIGH);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 8
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, LOW);
digitalWrite(Y2, HIGH);
digitalWrite(G2, LOW);
digitalWrite(R3, LOW);
digitalWrite(Y3, HIGH);
digitalWrite(G3, LOW);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 9
digitalWrite(R1, HIGH);
digitalWrite(Y1, LOW);
digitalWrite(G1, LOW);
digitalWrite(R2, LOW);
digitalWrite(Y2, LOW);
digitalWrite(G2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Kondisi 10
digitalWrite(R1, LOW);
digitalWrite(Y1, HIGH);
digitalWrite(G1, LOW);
digitalWrite(R2, LOW);
digitalWrite(Y2, HIGH);
digitalWrite(G2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(Y3, LOW);
digitalWrite(G3, LOW);
digitalWrite(R4, HIGH);
digitalWrite(Y4, LOW);
digitalWrite(G4, LOW);
digitalWrite(R5, HIGH);
digitalWrite(Y5, LOW);
digitalWrite(G5, LOW);
delay(5000); // Menyala selama 5 detik
// Menampilkan teks berjalan di LCD
scrollText("Your scrolling text here", 500); // Teks dan kecepatan scroll
}
// Fungsi untuk menampilkan teks berjalan
void scrollText(String text, int speed) {
int length = text.length();
for (int i = 0; i < length + 16; i++) {
lcd.clear();
lcd.setCursor(-i, 0);
lcd.print(text);
delay(speed);
}
}