//simulasi lampu lalu lintas pertigaan
//arif kurnia rahman TI-2A 4.33.23.0.05
#include <TM1637.h>
#define CLK 2
#define DIO 3
TM1637 disp(CLK, DIO);
int counter = 0;
#define HIJAU1 10
#define KUNING1 9
#define MERAH1 8
#define HIJAU2 4
#define KUNING2 5
#define MERAH2 6
#define HIJAU3 11
#define KUNING3 12
#define MERAH3 13
void setup() {
disp.init();
disp.set(BRIGHTEST);
disp.display(3, counter);
pinMode(HIJAU1, OUTPUT);
pinMode(KUNING1, OUTPUT);
pinMode(MERAH1, OUTPUT);
pinMode(HIJAU2, OUTPUT);
pinMode(KUNING2, OUTPUT);
pinMode(MERAH2, OUTPUT);
pinMode(HIJAU3, OUTPUT);
pinMode(KUNING3, OUTPUT);
pinMode(MERAH3, OUTPUT);
setMerah();
}
void loop() {
arah1();
arah2();
arah3();
counter++;
disp.display(3, counter);//just for count hehe,
//rencana untuk display countdown sesuai nyala lampu jijau
}
void setMerah() {
digitalWrite(MERAH1, HIGH);
digitalWrite(MERAH2, HIGH);
digitalWrite(MERAH3, HIGH);
delay(500);
}
void arah1() {
digitalWrite(MERAH2, HIGH);
digitalWrite(MERAH3, HIGH);
delay(100);
digitalWrite(MERAH1, LOW);
digitalWrite(HIJAU1, HIGH);
delay(8000);
digitalWrite(HIJAU1, LOW);
digitalWrite(KUNING1, HIGH);
delay(2000);
digitalWrite(KUNING1, LOW);
digitalWrite(MERAH1, HIGH);//safety arah 1
delay(1500);
}
void arah2() {
digitalWrite(MERAH1, HIGH);
digitalWrite(MERAH3, HIGH);
delay(100);
digitalWrite(MERAH2, LOW);
digitalWrite(HIJAU2, HIGH);
delay(8000);
digitalWrite(HIJAU2, LOW);
digitalWrite(KUNING2, HIGH);
delay(2000);
digitalWrite(KUNING2, LOW);
digitalWrite(MERAH2, HIGH);//safety arah 2
delay(1500);
}
void arah3() {
digitalWrite(MERAH1, HIGH);
digitalWrite(MERAH2, HIGH);
digitalWrite(MERAH3, LOW);
digitalWrite(HIJAU3, HIGH);
delay(8000);
digitalWrite(HIJAU3, LOW);
digitalWrite(KUNING3, HIGH);
delay(2000);
digitalWrite(KUNING3, LOW);
digitalWrite(MERAH3, HIGH);//safety arah 3
delay(1500);
}