#include <TM1637TinyDisplay.h>
const int CLK = 25;
const int DIO = 26;
int out = 15;
int inn = 2;
TM1637TinyDisplay display(CLK,DIO);
int red = 14;
int green = 13;
int counter = 1;
int buzzer = 12;
void setup() {
display.setScrolldelay(500);
display.begin();
Serial.begin(115200);
pinMode(buzzer, OUTPUT);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(out, INPUT_PULLUP);
pinMode(inn, INPUT_PULLUP);
pinMode(CLK, OUTPUT);
pinMode(DIO, OUTPUT);
display.showString("24");
delay(500);
display. showString("COUNTER UP & DOWN");
Serial.println("================");
}
void loop() {
int valuemasuk = digitalRead(out);
int valuekeluar = digitalRead(inn);
display.showNumber(counter - 1);
if(valuemasuk == LOW){
if(counter <= 10){
Serial.println("Orang Masuk");
Serial.println("tone 100ms & 100Hz");
Serial.print("Jumlah orang di ruangan : ");
Serial.println(counter++);
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
tone(buzzer, 200, 100);
delay(400);
} else {
Serial.println("Ruangan Sudah Penuh!!!");
digitalWrite(green, LOW);
digitalWrite(red, HIGH);
delay(400);
}
} else if(valuekeluar == LOW){
if(counter != 1){
counter--;
if(counter == 1){
Serial.println("Ruang Sudah Kosong");
delay(400);
} else {
if(counter <=10){
Serial.println("Orang Keluar");
Serial.println("tone 100ms & 1000Hz");
Serial.print("Jumlah Orang di Ruangan : ");
Serial.print(counter - 1);
Serial.println(" Orang");
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
tone(buzzer, 200, 100);
delay(400);
}
}
}
}
}