int ledmerah = 11;
//int ledkuning = ;
int ledhijau = 10;
int ir1= 12;
int ir2= 13;
int total = 0 ;//variabel untuk total dari perhitungan
int irst;
int irnd;
void setup() {
pinMode(ledmerah, OUTPUT);
// pinMode(ledkuning, OUTPUT);
pinMode(ledhijau, OUTPUT);
Serial.begin(9600);
pinMode(ir1, INPUT);
pinMode(ir2, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(ledmerah, HIGH);
}
void loop() {
irst=digitalRead(ir1);//perhitungan volume kendaraan
irnd=digitalRead(ir2);
if(irst==LOW){
total++;
if(irnd==LOW){
total++;
}
}
Serial.println(total);//total perhitungan
switch (total) { //pemilihan waktu lampu hijau
case 1 :
digitalWrite(ledmerah, LOW);
digitalWrite(ledhijau, HIGH);
dtk5();
total=0;
delay(500);
break;
case 2 :
digitalWrite(ledmerah, LOW);
digitalWrite(ledhijau, HIGH);
dtk9();
total=0;
delay(500);
break;
default :
digitalWrite(ledmerah, HIGH);
digitalWrite(ledhijau, LOW);
total=0;
delay(500);
break;
}
}
void dtk5(){
lima();
delay(500);
empat();
delay(500);
tiga();
delay(500);
dua();
delay(500);
satu();
delay(500);
nol();
}
void dtk9(){
sembilan();
delay(200);
delapan();
delay(500);
tujuh();
delay(500);
enam();
delay(500);
lima();
delay(500);
empat();
delay(500);
tiga();
delay(500);
dua();
delay(500);
satu();
delay(500);
nol();
delay(500);
}
void nol() {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(500);
}
void satu() {
digitalWrite(2, LOW); // A
digitalWrite(3, HIGH); // B
digitalWrite(4, HIGH); // C
digitalWrite(5, LOW); // D
digitalWrite(6, LOW); // E
digitalWrite(7, LOW); // F
digitalWrite(8, LOW); // G
delay(500);
}
void dua() {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay(500);
}
void tiga() {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay(500);
}
void empat() {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
delay(500);
}
void lima() {
Serial.println("dtk5-5");
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
delay(500);
}
void enam() {
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(500);
}
void tujuh() {
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(500);
}
void delapan() {
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(500);
}
void sembilan() {
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(2000);
}
IR2
IR1