#define trig1 19
#define echo1 18
float distancia1 = 0;
#define trig2 5
#define echo2 4
float distancia2 = 0;
int asientos = 30;
void setup() {
Serial.begin(115200);
init_ultra(trig1, echo1);
init_ultra(trig2, echo2);
}
void loop() {
tomar_distancia1();
tomar_distancia2();
delay(2000);
entrada();
salida();
Serial.print("Asientos disponibles: ");
Serial.println(asientos);
}
void init_ultra(int trig, int echo) {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trig, LOW);
}
void tomar_distancia1() {
//activa pin disparo 1
digitalWrite(trig1, HIGH);
delay(100);
digitalWrite(trig1, LOW);
//obtenemos el ancho del pulso y escalamos el tiempo a una distancia en cm
distancia1 = pulseIn(echo1, HIGH) * 0.034 * .5;
//Serial.println(distancia1);
}
void tomar_distancia2() {
//activa pin disparo 2
digitalWrite(trig2, HIGH);
delay(100);
digitalWrite(trig2, LOW);
//obtenemos el ancho del pulso y escalamos el tiempo a una distancia en cm
distancia2 = pulseIn(echo2, HIGH) * 0.034 * .5;
//Serial.println(distancia1);
}
void entrada (){
if (distancia1 <= 10){
asientos--;
}
if(asientos <= 0){
asientos = 0;
}
}
void salida (){
if (distancia2 <= 10) {
asientos++;
}
if(asientos > 30){
asientos = 30;
}
}