Como hacer funcionar dos if en un solo codigo

Quiero hacer funcionar dos If para dos sensores diferentes en un Arduino UNO, soy nuevo en arduino y no tengo ni la menor idea de como hacerlo, lo tengo escrito de la siguiente manera y solo funciona un sensor, el otro se queda encendido.

const int Trig = 2;
const int Echo = 3;
const int LED = 4;
const int Trigg = 12;
const int Echoo = 8;
const int LEDD = 7;
int s;
int ss;
float t;
float tt;

void setup() {
pinMode(LED, OUTPUT);
pinMode(LEDD, OUTPUT);
pinMode(Trig, OUTPUT);
pinMode(Trigg, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Echoo, INPUT);
Serial.begin(9600);

}

void loop() {
delayMicroseconds(5);
digitalWrite(Trig,LOW);
digitalWrite(Trigg,LOW);
delayMicroseconds(5);
digitalWrite(Trig,HIGH);
digitalWrite(Trigg,HIGH);
delayMicroseconds(10);
t=pulseIn(Echo, HIGH);
tt=pulseIn(Echoo,HIGH);
s=0.01716t;
ss=0.01716
tt;

if(ss<=5){
digitalWrite(LED,HIGH);
Serial.println(“Estacionamiento 1: Ocupado”);
}
else{
digitalWrite(LED,LOW);
Serial.println(“Estacionamiento 1: Disponible”);
}
if(s<=5){
digitalWrite(LEDD,HIGH);
Serial.println(“Estacionamiento 2: Ocupado”);
}
else{
digitalWrite(LEDD,LOW);
Serial.println(“Estacionamiento 2: Disponible”);
}

delay(1000);
}

Moderador: Lee las normas del foro y edita tu post usando las etiquetas para código. No se postea código como simple texto. El mismo comentario se usa para los errores.

Hola, ¿cual es el que se queda siempre encendido? porque acabo de probar la estructura de los if y parece estar bien, sera un problema de conexiones ?

Lo siento pero este codigo no tienes ni pies ni cabeza… O al menos desde mi punto de vista.

Los if cumplen su funcion, pero ¿que hay del demas codigo?

No tiene sentido este codigo, no hace nada. Simplemente encender el LED “Trig” y el otro LED “Trigg” al inicio del programa, aparte de mandar por serial “Estacionamiento 1: Ocupado”.

Los float no tienen valores asignados.

float t;
float tt;

Al inicio del programa le dices los LEDs que se apaguen y se enciendan cada 5 microsegundos! ¿Para que?

delayMicroseconds(5);
  digitalWrite(Trig,LOW);
  digitalWrite(Trigg,LOW);
  delayMicroseconds(5);
  digitalWrite(Trig,HIGH);
  digitalWrite(Trigg,HIGH);
  delayMicroseconds(10);
  t=pulseIn(Echo, HIGH);
  tt=pulseIn(Echoo,HIGH);

Es inapreciable, ademas luego le dices que “s = 0.01716 * t” y “ss = 0.01716 * tt”.

Y arriba te he dicho que los float “t” y “tt” no tienen valores asignados asi que son 0. Dando como resultado que “s” y “ss” es 0.

Y debajo dices que si “s” es menor menor o igual que 5 encienda el led y mande el mensaje que te dije por serial…

if(ss<=5){
    digitalWrite(LED,HIGH);
    Serial.println("Estacionamiento 1: Ocupado");
  }

Pues ahi se queda atrancado el codigo en un infinito bucle. Ya que siempre daran 0 los valores…

Bueno aqui te dejo el codigo hecho desde cero, suponiendo que tu idea es poner dos interruptores en 2 aparcamientos y segun si estan ocupados o no encender los LEDs y mandar el mensaje por Serial.

Tube que eliminar los “Trig” y “Trigg” ya que no servian para nada, o al menos eso parece.

#include <Arduino.h>

const int Echo = 3;
const int LED = 4;
const int Echoo = 8;
const int LEDD = 7;
int EstadoEcho;
int EstadoEchoo;

void setup() {
pinMode(LED, OUTPUT);
pinMode(LEDD, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Echoo, INPUT);
Serial.begin(9600);

}

void loop() {

    EstadoEcho = digitalRead(Echo);
    EstadoEchoo = digitalRead(Echoo);

    if (EstadoEcho == HIGH) {
        
        digitalWrite(LED, HIGH);
        Serial.println("Estacionamiento 1: Ocupado");
    }
    else {
        
        digitalWrite(LED, LOW);
        Serial.println("Estacionamiento 1: Disponible");
    }

    if (EstadoEchoo == HIGH) {
        
        digitalWrite(LEDD, HIGH);
        Serial.println("Estacionamiento 2: Ocupado");
    }
    else {
        
        digitalWrite(LEDD, LOW);
        Serial.println("Estacionamiento 2: Disponible");
    }

    delay(1000);
}

Pruebalo y me dices que tal te va.

El codigo Trig y Trigg estan porque estoy utilizando un sensor sonico HC-SR04, y el s, ss, t y tt es como variable para el funcionamiento del sensor, una disculpa por no haber aclarado eso de antemano, se supone que cuando el sensor detecte un objeto a una distancia de 5 centimetros debe prender el LED y el LED2 debe quedarse apagado, y lo mismo con el sensor dos y el LEDD Y LEDD2.
Utilice como base el codigo que me pusieron y le agregue el trig y las variables que faltaban, ahora surgio otro problema, el sensor uno funciona correcto pero cuando detecta algo, enciende el LED2 pero el LED parpadea. Y el sensor dos de plano no funciona.

const int Echo = 3;
const int Trig = 5;
const int LED = 4;
const int LED2 = 5;
const int Echoo = 8;
const int Trigg = 6;
const int LEDD = 7;
const int LEDD2 = 9;
int s;
int ss;
float t;
float tt;

void setup() {
pinMode(LED, OUTPUT);
pinMode(LEDD, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LEDD2, OUTPUT);
pinMode(Trig, OUTPUT);
pinMode(Trigg, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Echoo, INPUT);
Serial.begin(9600);

}

void loop() {
    digitalWrite(Trig,LOW);
    digitalWrite(Trigg,LOW);
    digitalWrite(Trig,HIGH);
    digitalWrite(Trigg,HIGH);
    t=pulseIn(Echo, HIGH);
    tt=pulseIn(Echoo,HIGH);
    s=0.01716*t;
    ss=0.01716*tt;


    if (s<=5) {
        digitalWrite(LED, HIGH);
        digitalWrite(LED2, LOW);
        Serial.println("Estacionamiento 1: Ocupado");
    }
    else {
        digitalWrite(LED, LOW);
        digitalWrite(LED2, HIGH);
        Serial.println("Estacionamiento 1: Disponible");
    }

    if (ss<=5) {
        digitalWrite(LEDD, HIGH);
        digitalWrite(LEDD2, LOW);
        Serial.println("Estacionamiento 2: Ocupado");
    }
    else {
        digitalWrite(LEDD, LOW);
        digitalWrite(LEDD2, HIGH);
        Serial.println("Estacionamiento 2: Disponible");
    }

    delay(1000);
}