#include <TM1637TinyDisplay.h>
const int CLK = 26;
const int DIO = 27;
int inn = 4;
int out = 2;
TM1637TinyDisplay display(CLK,DIO);
int counter = 1;
int buzzer = 13;
int ledhijau = 12;
int ledmerah = 14;
void setup() {
display.setScrolldelay(500);
display.begin();
Serial.begin(115200);
pinMode(buzzer, OUTPUT);
pinMode(ledmerah, OUTPUT);
pinMode(ledhijau, OUTPUT);
pinMode(out, INPUT_PULLUP);
pinMode(inn, INPUT_PULLUP);
pinMode(CLK, OUTPUT);
pinMode(DIO, OUTPUT);
display.showString("2215374007");
delay(500);
display.showString("LATIHAN 5 COUNTER");
Serial.println("================");
}
void loop() {
int valuemasuk = digitalRead(inn);
int valuekeluar = digitalRead(out);
display.showNumber(counter - 1);
if(valuemasuk == LOW){
if(counter <= 10){
Serial.print("Jumlah orang dalam ruangan : ");
Serial.println(counter++);
Serial.println("Orang Masuk");
digitalWrite(ledhijau, HIGH);
digitalWrite(ledmerah, LOW);
tone(buzzer, 100, 100);
delay(500);
} else {
Serial.println("Ruangan Sudah Penuh!!!");
digitalWrite(ledhijau, LOW);
digitalWrite(ledmerah, HIGH);
delay(500);
}
} else if(valuekeluar == LOW){
if(counter != 1){
counter--;
if(counter == 1){
Serial.println("Ruangan Sudah Kosong!!!");
delay(500);
} else {
if(counter <=10){
Serial.println("Orang Keluar");
Serial.print("Jumlah Orang dalam Ruangan : Sisa ");
Serial.print(counter - 1);
Serial.println(" Orang");
digitalWrite(ledhijau, HIGH);
digitalWrite(ledmerah, LOW);
tone(buzzer, 100, 1000);
delay(500);
}
}
}
}
}