#include <Servo.h>
//pinos dos componentes
const int servo = 8;
const int sensor = 7;
const int botao = 6;
const int led_verde = 2;
//controle de entrada
int vagas_total = 4;
int vagas_ocupadas = 0;
//servo
Servo cancela;
void setup() {
Serial.begin(9600);
//input
pinMode(sensor, INPUT);
pinMode(botao, INPUT_PULLUP);
//output
pinMode(led_verde, OUTPUT);
//servo
cancela.attach(servo);
cancela.write(0);
delay(100);
//começo do led
//digitalWrite(led_verde, );
//Tela de informações
Serial.println("==============================");
Serial.println(" PAINEL DO ESTACIONAMENTO ");
Serial.println("==============================");
Serial.print("Vagas Totais: ");
Serial.println(vagas_total);
Serial.print("Vagas disponiveis: ");
Serial.println(vagas_total - vagas_ocupadas);
Serial.println("==============================");
delay(1500);
}
void loop() {
int estado_sensor = digitalRead(sensor);
int estado_botao = digitalRead(botao);
if(estado_sensor == HIGH){
if(vagas_ocupadas < vagas_total){
vagas_ocupadas += 1;
//digitalWrite(led_vermelho, LOW);
//digitalWrite(led_verde, HIGH);
cancela.write(90);
Serial.println("[ESTACIONAMENTO LIVRE - PODE ENTRAR]");
delay(3000);
cancela.write(0);
//digitalWrite(led_vermelho, HIGH);
//digitalWrite(led_verde, LOW);
}
else{
cancela.write(0);
Serial.println("[ESTACIONAMENTO LOTADO]");
/*int i;
for(i = 0; i < 5; i++){
digitalWrite(led_vermelho, LOW);
delay(100);
digitalWrite(led_verde, HIGH);
delay(100);
digitalWrite(led_vermelho, HIGH);
delay(100);
digitalWrite(led_verde, LOW);
delay(100);
}*/
delay(1000);
}
}
else if(estado_botao == HIGH && vagas_ocupadas != 0){
vagas_ocupadas -= 1;
Serial.println("[VOLTE SEMPRE]");
cancela.write(90);
delay(3000);
cancela.write(0);
}
else{
cancela.write(0);
//digitalWrite(led_verde, LOW);
}
delay(1000);
//Para limpar o texto(depois vê no arduino IDE)
//Serial.print("\033[2J");
//Serial.print("\033[H");
//tela de informações
Serial.println("==============================");
Serial.println(" PAINEL DO ESTACIONAMENTO ");
Serial.println("==============================");
Serial.print("Vagas Totais: ");
Serial.println(vagas_total);
Serial.print("Vagas disponiveis: ");
Serial.println(vagas_total - vagas_ocupadas);
Serial.println("==============================");
delay(1500);
}