
#include <LiquidCrystal.h>
LiquidCrystal lcd(A2, A1, A0, 4, A3, 2); // (8, 9, 4, 5, 6, 7)
//Project 3 – Lampu Lalu lintas
int ledMerah = 5; // J. Kn
int ledKuning = 6;
int ledHijau = 7;
int ledMerah1 = 8; // J. Tg
int ledKuning1 = 9;
int ledHijau1 = 10;
int ledMerah2 = 11; // J. Kr
int ledKuning2 = 12;
int ledHijau2 = 13;
int i = 80;
int a;
int b;
int c;
int k;
void setup() {
//Serial.begin(9600);
pinMode(ledMerah, OUTPUT); //Setup Mode Pin
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledMerah1, OUTPUT); //Setup Mode Pin
pinMode(ledKuning1, OUTPUT);
pinMode(ledHijau1, OUTPUT);
pinMode(ledMerah2, OUTPUT); //Setup Mode Pin
pinMode(ledKuning2, OUTPUT);
pinMode(ledHijau2, OUTPUT);
lcd.begin(16, 2);
lcd.begin(16, 2);
analogWrite(3, 128);
lcd.setCursor(0, 0);
lcd.print("J.Kn J.Tg J.Kr");
}
void loop() {
for (i = 0; i <= 20; i++) { //J. Kn
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, HIGH);
digitalWrite(ledMerah1, HIGH);
digitalWrite(ledMerah2, HIGH);
a = 20 - i;
//Serial.println(a);
if (a < 0)
a = 20;
if (a < 10) {
lcd.setCursor(3, 1);
lcd.print(" ");
}
lcd.setCursor(2, 1);
lcd.print(a);
a--;
lcd.setCursor(0, 1);
lcd.print("H.");
// delay(700);
b = 23 - i;
//Serial.println(a);
if (b < 0)
b = 23;
if (b < 10) {
lcd.setCursor(9, 1);
lcd.print(" ");
}
lcd.setCursor(8, 1);
lcd.print(b);
b--;
lcd.setCursor(6, 1);
lcd.print("M.");
//delay(500);
c = 66 - i;
//Serial.println(a);
if (c < 0)
c = 66;
if (c < 10) {
lcd.setCursor(15, 1);
lcd.print(" ");
}
lcd.setCursor(14, 1);
lcd.print(c);
c--;
lcd.setCursor(12, 1);
lcd.print("M.");
delay(700);
}
for (i = 0; i <= 3; i++) {
digitalWrite(ledHijau, LOW);
digitalWrite(ledKuning, HIGH);
delay(700);
digitalWrite(ledKuning, LOW);
digitalWrite(ledMerah2, HIGH);
k= 2 - i;
//Serial.println(a);
if (k < 0)
k = 2;
if (k < 10) {
lcd.setCursor(2, 1);
lcd.print(" ");
}
lcd.setCursor(2, 1);
lcd.print(k);
k--;
lcd.setCursor(0, 1);
lcd.print("K.");
b= 2 - i;
//Serial.println(a);
if (b < 0)
b = 2;
if (b < 10) {
lcd.setCursor(9, 1);
lcd.print(" ");
}
lcd.setCursor(8, 1);
lcd.print(b);
b--;
c= 45 - i;
//Serial.println(a);
if (c < 0)
c = 45;
if (c < 10) {
lcd.setCursor(15, 1);
lcd.print(" ");
}
lcd.setCursor(14, 1);
lcd.print(c);
c--;
}
for (i = 0; i <= 20; i++) { //J. Tg
digitalWrite(ledMerah1, LOW);
digitalWrite(ledHijau1, HIGH);
digitalWrite(ledMerah2, HIGH);
digitalWrite(ledMerah, HIGH);
b = 20 - i;
//Serial.println(a);
if (b < 0)
b = 20;
if (b < 10) {
lcd.setCursor(9, 1);
lcd.print(" ");
}
lcd.setCursor(8, 1);
lcd.print(b);
b--;
lcd.setCursor(6, 1);
lcd.print("H.");
//delay(700);
c = 23 - i;
//Serial.println(a);
if (c < 0)
c = 23;
if (c < 10) {
lcd.setCursor(15, 1);
lcd.print(" ");
}
lcd.setCursor(14, 1);
lcd.print(c);
c--;
lcd.setCursor(12, 1);
lcd.print("M.");
// delay(700);
a = 66 - i;
//Serial.println(a);
if (a < 0)
a = 66;
if (a < 10) {
lcd.setCursor(3, 1);
lcd.print(" ");
}
lcd.setCursor(2, 1);
lcd.print(a);
a--;
lcd.setCursor(0, 1);
lcd.print("M.");
delay(700);
}
for (i = 0; i <= 3; i++) {
digitalWrite(ledHijau1, LOW);
digitalWrite(ledKuning1, HIGH);
delay(700);
digitalWrite(ledKuning1, LOW);
digitalWrite(ledMerah, HIGH);
k = 2 - i;
//Serial.println(b);
if (k < 0)
k = 2;
if (k < 10) {
lcd.setCursor(9, 1);
lcd.print(" ");
}
lcd.setCursor(8, 1);
lcd.print(k);
k--;
lcd.setCursor(6, 1);
lcd.print("K.");
c= 2 - i;
//Serial.println(a);
if (c < 0)
c = 2;
if (c < 10) {
lcd.setCursor(15, 1);
lcd.print(" ");
}
lcd.setCursor(14, 1);
lcd.print(c);
c--;
a = 45 - i;
//Serial.println(a);
if (a < 0)
a = 45;
if (a < 10) {
lcd.setCursor(3, 1);
lcd.print(" ");
}
lcd.setCursor(2, 1);
lcd.print(a);
a--;
}
for (i = 0; i <= 20; i++) { //J. Kr
digitalWrite(ledMerah2, LOW);
digitalWrite(ledHijau2, HIGH);
digitalWrite(ledMerah1, HIGH);
digitalWrite(ledMerah, HIGH);
c = 20 - i;
//Serial.println(c);
if (c < 0)
c = 20;
if (c < 10) {
lcd.setCursor(15, 1);
lcd.print(" ");
}
lcd.setCursor(14, 1);
lcd.print(c);
c--;
lcd.setCursor(12, 1);
lcd.print("H.");
//delay(700);
a = 23 - i;
//Serial.println(a);
if (a < 0)
a = 23;
if (a < 10) {
lcd.setCursor(3, 1);
lcd.print(" ");
}
lcd.setCursor(2, 1);
lcd.print(a);
a--;
lcd.setCursor(0, 1);
lcd.print("M.");
//delay(700);
b = 66 - i;
//Serial.println(a);
if (b < 0)
b = 66;
if (b < 10) {
lcd.setCursor(9, 1);
lcd.print(" ");
}
lcd.setCursor(8, 1);
lcd.print(b);
b--;
lcd.setCursor(6, 1);
lcd.print("M.");
delay(700);
}
for (i = 0; i <= 3; i++) {
digitalWrite(ledHijau2, LOW);
digitalWrite(ledKuning2, HIGH);
delay(700);
digitalWrite(ledKuning2, LOW);
digitalWrite(ledMerah1, HIGH);
k = 2 - i;
//Serial.println(a);
if (k < 0)
k = 2;
if (k < 10) {
lcd.setCursor(15, 1);
lcd.print(" ");
}
lcd.setCursor(14, 1);
lcd.print(k);
k--;
lcd.setCursor(12, 1);
lcd.print("K.");
a= 2 - i;
//Serial.println(a);
if (a < 0)
a = 2;
if (a < 10) {
lcd.setCursor(3, 1);
lcd.print(" ");
}
lcd.setCursor(2, 1);
lcd.print(a);
a--;
b= 45 - i;
//Serial.println(a);
if (b < 0)
b = 45;
if (b < 10) {
lcd.setCursor(9, 1);
lcd.print(" ");
}
lcd.setCursor(8, 1);
lcd.print(b);
b--;
}
}




