const int TRIGGER_PIN_1 = 32;
const int ECHO_PIN_1 = 33;
const int TRIGGER_PIN_2 = 25;
const int ECHO_PIN_2 = 26;
int umbralDistancia = 50; // Ajusta este valor según tus necesidades
int umbralVacio = 100; // Ajusta este valor según tus necesidades
bool carroEnZona1 = false;
bool carroEnZona2 = false;
int totalCarros = 0;
void setup() {
Serial.begin(115200);
pinMode(TRIGGER_PIN_1, OUTPUT);
pinMode(ECHO_PIN_1, INPUT);
pinMode(TRIGGER_PIN_2, OUTPUT);
pinMode(ECHO_PIN_2, INPUT);
}
void loop() {
// Medición con el primer sensor
long duration1 = medirDistancia(TRIGGER_PIN_1, ECHO_PIN_1);
if (duration1 < umbralDistancia) {
if (!carroEnZona1) {
Serial.println("Carro detectado en zona 1");
totalCarros++;
carroEnZona1 = true;
}
} else if (duration1 > umbralVacio) {
carroEnZona1 = false;
}
// Medición con el segundo sensor
long duration2 = medirDistancia(TRIGGER_PIN_2, ECHO_PIN_2);
if (duration2 < umbralDistancia) {
if (!carroEnZona2) {
Serial.println("Carro detectado en zona 2");
totalCarros++;
carroEnZona2 = true;
}
} else if (duration2 > umbralVacio) {
carroEnZona2 = false;
}
// Mostrar las distancias y el total de carros en el monitor serial
Serial.print("Distancia 1: ");
Serial.print(duration1);
Serial.print(" cm, Distancia 2: ");
Serial.print(duration2);
Serial.print(" cm, Total de carros: ");
Serial.println(totalCarros);
delay(1000); // Esperar un segundo antes de la próxima medición
}
long medirDistancia(int triggerPin, int echoPin) {
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
return pulseIn(echoPin, HIGH) / 2 * 0.0343; // Convertir a centímetros
}