//fahreza Ananda
//2105106010046
#include <LiquidCrystal.h>
// Rangkaian pin LED RGB
const int redPin = 9; //kabel Merah
const int greenPin = 10; //kabel Hijau
const int yellowPin = 11; //kabel Kuning
// Rangkaian pin LCD
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Rangkaian potensiometer
const int potPin = A0;
// Variabel global
int potValue = 0;
void setup() {
// Mengatur pin LED RGB sebagai output
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
// Mengatur pin potensiometer sebagai input
pinMode(potPin, INPUT);
// Mengatur LCD
lcd.begin(16, 2); //16 kolom, 2 baris
}
void loop() {
// Membaca nilai potensiometer
potValue = analogRead(potPin);
// Mengatur kecepatan perubahan lampu lalu lintas
int delayTime = map(potValue, 0, 1023, 500, 2000);
// Merah Hidup, hijau dan biru mati (Merah)
analogWrite(redPin, 255);
analogWrite(greenPin, 0);
analogWrite(yellowPin, 0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("*TRAFFIC LIGHT*");
lcd.setCursor(0, 1);
lcd.print("---BERHENTI---");
delay(5000);
// Merah dan hijau hidup, biru mati (Kuning)
analogWrite(redPin, 255);
analogWrite(greenPin, 255);
analogWrite(yellowPin, 0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("*TRAFFIC LIGHT*");
lcd.setCursor(0, 1);
lcd.print("--PELAN-PELAN--");
delay(1000);
// Merah mati, hijau menyala, dan biru mati (Hijau)
analogWrite(redPin, 0);
analogWrite(greenPin, 255);
analogWrite(yellowPin, 0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("*TRAFFIC LIGHT*");
lcd.setCursor(0, 1);
lcd.print("-----JALAN-----");
delay(3000);
}