Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- #define ENTRADA A0
- #define SAIDA A1
- #define LUZVERDE 12
- #define LUZVERMELHA 9
- int ldrEntrada, ldrSaida;
- boolean passouPelaEntrada, passouPelaSaida;
- LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
- int contador = 0;
- //------------------------------------------
- void setup()
- {
- Serial.begin(9600);
- pinMode(LUZVERDE, 1);
- pinMode(LUZVERMELHA, 1);
- lcd.begin(16, 2);
- lcd.setCursor(0, 1);
- abrirSinal();
- }
- //-------------------------------------------
- void loop()
- {
- ldrEntrada = analogRead(ENTRADA); // Le sensor entrada
- ldrSaida = analogRead(SAIDA); // Le sensor saida
- //--------------------------------- Controle entrada
- while (ldrEntrada > 200) // Se passou pela entrada
- {
- passouPelaEntrada = true; // Informe entrou corredor
- fecharSinal(); // Fechar sinal
- Serial.println("passouPelaEntrada1");
- delay(500);
- ldrEntrada = analogRead(ENTRADA); // Verifica se sensor está livre
- }
- while (passouPelaEntrada == 1) // Enquanto estiver no corredor
- {
- ldrSaida = analogRead(SAIDA); // Le sensor saida para saber se entrou no recinto
- ldrEntrada = analogRead(ENTRADA); // Le sensor entrada para saber desistiu
- while (ldrSaida > 200) // Se entrou no recinto
- {
- Serial.println("passouPelaSaida1");
- contador++; // Incrementa contagem
- abrirSinal(); // Abrir sinal
- passouPelaEntrada = false; // Informe saiu corredor
- ldrSaida = analogRead(SAIDA); // Verifica se sensor está livre
- Serial.println(contador);
- }
- while (ldrEntrada > 200) // Se retornou para fora
- {
- passouPelaEntrada = false; // Informe saiu corredor
- abrirSinal(); // Abrir sinal
- Serial.println("Saiu sem contar");
- ldrEntrada = analogRead(ENTRADA); // Verifica se sensor está livre
- }
- }
- //---------------------------------------- Controle saida
- while (ldrSaida > 200) // Se passou pela saida
- {
- passouPelaSaida = true; // Informe entrou corredor
- fecharSinal(); // Fechar sinal
- Serial.println("passouPelaSaida2");
- delay(500);
- ldrSaida = analogRead(SAIDA); // Verifica se sensor está livre
- }
- while (passouPelaSaida == 1) // Enquanto estiver no corredor
- {
- ldrSaida = analogRead(SAIDA); // Le sensor saida para saber se retornou no recinto
- ldrEntrada = analogRead(ENTRADA); // Le sensor entrada para saber saiu
- while (ldrEntrada > 200) // Se saiu
- {
- Serial.println("passouPelaEntrada2");
- abrirSinal(); // Abrir sinal
- passouPelaSaida = false; // Informe saiu corredor
- ldrEntrada = analogRead(ENTRADA); // Verifica se sensor está livre
- Serial.println(contador);
- }
- while (ldrSaida > 200) // Se retornou para o recinto
- {
- passouPelaSaida = false; // Informe saiu corredor
- abrirSinal(); // Abrir sinal
- Serial.println("Entrou Novamente");
- ldrSaida = analogRead(SAIDA); // Verifica se sensor está livre
- }
- }
- }
- //-----------------------------------
- void abrirSinal()
- {
- Serial.println("Abriu");
- delay(500); // pra dar tempo da pessoa sair de vez do corredor
- digitalWrite(LUZVERDE, 1);
- digitalWrite(LUZVERMELHA, 0);
- }
- //-----------------------------------
- void fecharSinal()
- {
- Serial.println("Fechou");
- digitalWrite(LUZVERDE, 0);
- digitalWrite(LUZVERMELHA, 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement