// Pin de entrada del sensor fototransistor (negro)
int Fototransistor = 7;
// Variable que registra el estado del sensor de entrada
int ValorFototransistor = 0;
// Variable que registra el numero de personas que pasaron por el sensor
int Contadorpersonas = 0;
// Pin de la conexion de LED rojo
int LedRojo = 10;
int Sensor = 6;
int ValorSensor = 0;
// Configuracion Pantalla LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pines para pantalla LCD
void setup()
{
Serial.begin(9600);
pinMode(Fototransistor, INPUT);
pinMode(LedRojo, OUTPUT);
pinMode(Sensor, INPUT);
// Informacion pantalla inicial
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Contador: 0");
lcd.setCursor(0, 1);
// lcd.print("Ulibertadores");
}
void loop()
{
// Establecer la variable ValorFototransistor con el estado del sensor pin 7
ValorFototransistor = digitalRead(Fototransistor);
ValorSensor = digitalRead(Sensor);
//Muestra toda la Informacion de los sensores en el monitor serie **** mostrar en la consola de arduino que esta sucediendo en el prog
// Serial.print("ValorFototransistor : ");
// Serial.println(ValorFototransistor);
// delay(100);
// Comprobar si el estado del sensor de entrada ha cambiado
if (ValorFototransistor != 1) // validación cuando el fototransistor deja de recibir luz del infrarojo
{
digitalWrite(LedRojo, LOW);
Contadorpersonas = Contadorpersonas + 1;
// Serial.print("Contador: ");
Serial.println(Contadorpersonas);
while (digitalRead(Fototransistor) != 1)
{
delay(100);
// Serial.println ( "El Sensor se detuvo o esta siendo obstruido!"); // esta siendo obstruido por un objeto o el led rojo falló
}
// BORRAMOS TODA LA PANTALLA PARA ACTUALIZARLA CADA SEGUNDO
lcd.clear();
lcd.print("Contador: 0");
lcd.setCursor(0, 1);
// Se Actualiza la pantalla LCD con el valor del contador
lcd.setCursor(10, 0);
lcd.print(Contadorpersonas);
}
/* else
{
digitalWrite(LedRojo, HIGH); // Cuando el Sensor recibe luz infraroja, El led se enciente
}*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (ValorSensor != 1) // validación cuando el fototransistor deja de recibir luz del infrarojo
{
digitalWrite(LedRojo, LOW);
Contadorpersonas = Contadorpersonas - 1;
// Serial.print("Contador: ");
// Serial.println(Contadorpersonas); lo saqué
while (digitalRead(Sensor) != 1)
{
delay(100);
// Serial.println ( "El Sensor se detuvo o esta siendo obstruido!"); // esta siendo obstruido por un objeto o el led rojo falló
}
// BORRAMOS TODA LA PANTALLA PARA ACTUALIZARLA CADA SEGUNDO
lcd.clear();
lcd.print("Contador: 0");
lcd.setCursor(0, 1);
// Se Actualiza la pantalla LCD con el valor del contador
lcd.setCursor(10, 0);
lcd.print(Contadorpersonas);
}
else
{
digitalWrite(LedRojo, HIGH); // Cuando el Sensor recibe luz infraroja, El led se enciente
}
}