Reduccion de codigo

Muy buenas, tenia unas dudas respecto a un programa de un proyecto escolar, en la ultima revisión el docente nos pidió reducir la parte del código encargada de los botones de mi programa, para dicha parte he usado 3 if pero me dijeron que lo reduciera a un solo if, así que me pueden ayudar con eso, gracias de antemano.

Adjunto la parte de código que se tiene que reducir (Esta dentro de un void loop):

estadob1 = digitalRead(inputPin1);
 estadob2 = digitalRead(inputPin2);
 estadob3 = digitalRead(inputPin3);
  
  if ((estadob1 == HIGH) && (estadoA1 == LOW)) {
    salida1 = 1;
    delay(20);
    }

    if ((estadob2 == HIGH) && (estadoA2 == LOW)) {
    salida1 = 0;
    salida2 = 1;
    delay(20);
    }
    
  if ((estadob3 == HIGH) && (estadoA3 == LOW)) {
    salida1 = 0;
    salida3 = 1;
    delay(20);
    }

 estadoA1 = estadob1;
 estadoA2 = estadob2;
 estadoA3 = estadob3;

no se si funcione ";" es decir :
if ( (estadob1 == HIGH) && (estadoA1 == LOW) ; (estadob2 == HIGH) && (estadoA2 == LOW) ; (estadob3 == HIGH) && (estadoA3 == LOW))
(y pones las salidas)
aver experimentale :grin:
la verdad es que soy nuevo en esto de programar pero no se si funcione

Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>



De todos modos si lo tienes que hacer tu y vienes al foro a preguntar la solución qué aprendes? Mi respuesta es nada. Es lo mismo que copiarse.
Se supone que apliques lo aprendido con algebra de Boole.

Te doy algunas pistas.

salida1 solo se pone a 1 si (if) se cumple la primera condición, en otro caso (else) se pone en 0.

Es perfectamente válido hacer

salida2 = (estadob2 == HIGH) && (estadoA2 == LOW);

y se pondrá a 1 solo si se cumple la condición.
Lo mismo pasaría con salida3 y sus condicionales.

Fijate que si logras aplicarlo te quedaría solo un if() - else

Saludos

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.