#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define pinLed_Y 19
#define pinLed_G 18
#define pinLed_R 17
#define PB_Y 12
#define PB_G 14
#define buzzer 5
unsigned char Status_PB_Y, Status_PB_G;
unsigned long PrevMillis;
unsigned int Interval=150, Interval2=500, Interval3=2000;
unsigned int Counter = 0;
void setup() {
Serial.begin(115200);
pinMode(PB_Y, INPUT);
pinMode(PB_G, INPUT);
pinMode(pinLed_Y, OUTPUT);
pinMode(pinLed_G, OUTPUT);
pinMode(pinLed_R, OUTPUT);
pinMode(buzzer, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(5,0);
lcd.print("TOLI 5A");
lcd.setCursor(0,1);
lcd.print("Count:");
}
void loop() {
int Status_PB_Y = digitalRead(PB_Y);
int Status_PB_G = digitalRead(PB_G);
if (millis() - PrevMillis >= Interval){
PrevMillis = millis();
Status_PB_Y = digitalRead(PB_Y);
Status_PB_G = digitalRead(PB_G);
if (Status_PB_Y == 1 ){
digitalWrite(pinLed_Y, HIGH);
Counter++;
lcd.setCursor(7,1);
lcd.print(Counter);
}
else{
digitalWrite(pinLed_Y, LOW);
}
}
if (Status_PB_Y == HIGH || Status_PB_G == HIGH)
{
digitalWrite(pinLed_G, HIGH);
} else {
digitalWrite(pinLed_G, LOW);
}
if (Status_PB_Y == HIGH && Status_PB_G == HIGH)
{
digitalWrite(pinLed_Y, HIGH);
} else {
digitalWrite(pinLed_Y, LOW);
}
if (!(Status_PB_Y == HIGH) && !(Status_PB_G == HIGH))
{
digitalWrite(pinLed_R, HIGH);
} else {
digitalWrite(pinLed_R, LOW);
}
tone(buzzer, 200);
delay(250);
noTone(buzzer);
delay(100);
}