// Definiciones de pines
#define Led_verde 12 // Indicará si hay lugares disponibles
#define Led_rojo 13 // Indicará que no hay lugares disponibles
#define sensor_i 11 // Registrará el ingreso de vehiculos
#define sensor_s 10 // Registrará la salida de vehículos
#define barrera 9 // Pin de control de la barrera
// Variables globales
int cantidad_de_lugares = 466;
void setup() {
pinMode(sensor_i, INPUT_PULLUP); // Configura el sensor como entrada con pull-up
pinMode(sensor_s, INPUT_PULLUP); // Configura el sensor como entrada con pull-up
pinMode(barrera, OUTPUT); // Configura el pin de la barrera como salida
pinMode(Led_verde, OUTPUT); // Configura el pin del LED verde como salida
pinMode(Led_rojo, OUTPUT); // Configura el pin del LED rojo como salida
digitalWrite(Led_verde, HIGH); // Enciende el LED verde al inicio indicando lugares disponibles
digitalWrite(Led_rojo, LOW); // Apaga el LED rojo al inicio
}
void loop() {
// Verificar si un vehiculo está ingresando
if (digitalRead(sensor_i) == LOW) {
if (cantidad_de_lugares > 0) {
digitalWrite(Led_verde, HIGH); // Enciende el LED verde si hay espacio disponible
digitalWrite(Led_rojo, LOW); // Apaga el LED rojo si hay espacio disponible
// Simulación de levantamiento de la barrera
digitalWrite(barrera, HIGH);
delay(5000); // Espera 5 segundos para simular el paso del vehículo
digitalWrite(barrera, LOW); // Baja la barrera
cantidad_de_lugares--; // Decrementa la cantidad de lugares disponibles
delay(1000); // Espera un segundo para evitar la detección repetida del mismo vehículo
} else {
digitalWrite(Led_rojo, HIGH); // Enciende el LED rojo si no hay espacio disponible
digitalWrite(Led_verde, LOW); // Apaga el LED verde si no hay espacio disponible
delay(1000); // Espera un segundo antes de volver a verificar
}
}
// Verificar si un vehiculo está saliendo
if (digitalRead(sensor_s) == LOW) {
// Simulación de salida del vehículo
digitalWrite(barrera, HIGH); // Levanta la barrera
delay(5000); // Espera 5 segundos para simular el paso del vehículo
digitalWrite(barrera, LOW); // Baja la barrera
cantidad_de_lugares++; // Incrementa la cantidad de lugares disponibles
delay(1000); // Espera un segundo antes de volver a verificar
}
}