int botao1 = 16, botao2 = 17, RED = 2, GREEN = 0, s_sensor = 0, s_botao = 0, aprovado = 0, TEMPO = 0, contador = 0, NEGADO = 0, teste = 0;
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin(16, 2);
lcd.init();
lcd.backlight();
pinMode(botao1, INPUT);
pinMode(botao2, INPUT);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
Serial.begin(115200);
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
lcd.clear();
lcd.print(" By Gabriel Luz");
Serial.println("By Gabriel Luz");
delay(2000);
lcd.clear();
lcd.print(" 3AT SEMB2 ");
lcd.setCursor(0, 1);
lcd.print(" SENAI ");
Serial.println("3AT SEMB2 MECATRÔNICA");
Serial.println("SENAI");
delay(3000);
lcd.clear();
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
}
void loop() {
s_sensor = digitalRead(botao1);
s_botao = digitalRead(botao2);
teste = 0;
while (digitalRead(botao1) == HIGH || digitalRead(botao2) == HIGH)
{
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
Serial.println("Verificando...");
Serial.println("---------------");
lcd.clear();
for (contador = 0; contador < 15; contador = contador+1)
{
lcd.print("_");
Serial.print("-");
delay(100);
}
lcd.clear();
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
if (s_botao == 1)
{
teste = 1;
}
s_sensor = digitalRead(botao1);
s_botao = digitalRead(botao2);
if (s_botao == HIGH && s_sensor == HIGH)
{
aprovado = aprovado + 1;
Serial.println("--------------------------------");
Serial.println(" ACESSO LIBERADO");
lcd.print("ACESSO LIBERADO");
digitalWrite(GREEN, HIGH);
digitalWrite(RED, LOW);
Serial.println(" ");
Serial.print ("Contagem de acessos aprovados: ");
Serial.println(aprovado);
Serial.println("--------------------------------");
lcd.setCursor(0, 1);
for (contador = 0; contador < 32; contador = contador+1)
{
if(contador == 17)
{
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
}
lcd.print("_");
Serial.print("-");
delay(100);
}
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
lcd.clear();
}
else
{
NEGADO = NEGADO + 1;
Serial.println("--------------------------------");
Serial.println(" ACESSO NEGADO");
lcd.print("ACESSO NEGADO");
digitalWrite(GREEN, LOW);
digitalWrite(RED, HIGH);
if (teste == 1)
{
Serial.println(" Sem leitura do cartão");
}
else
{
Serial.println(" Não aprovado pelo Supervisor");
}
Serial.println(" ");
Serial.print ("Contagem de acessos NEGADOS: ");
Serial.println(NEGADO);
Serial.println("--------------------------------");
lcd.setCursor(0, 1);
for (contador = 0; contador < 32; contador = contador+1)
{
if(contador == 17)
{
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
}
lcd.print("_");
Serial.print("-");
delay(100);
}
lcd.clear();
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
}
}
TEMPO = TEMPO + 1;
if (TEMPO == 20)
{
digitalWrite(RED, HIGH);
delay(100);
TEMPO = 0;
for (contador = 0; contador < 10; contador = contador+1)
{
Serial.println(" ");
}
Serial.print ("Contagem de acessos aprovados: ");
lcd.print("APROVADO: ");
lcd.print(aprovado);
lcd.setCursor(0, 1);
lcd.print("NEGADO: ");
lcd.print(NEGADO);
Serial.println(aprovado);
Serial.print ("Contagem de acessos NEGADOS: ");
Serial.println(NEGADO);
lcd.setCursor(0, 0);
}
digitalWrite(RED, LOW);
digitalWrite(GREEN, LOW);
delay(100);
}