Codigo para semaforo

Pues donde lo has puesto pero como te dije:

const int SalidaLedVerde = 2;
const int SalidaLedAmarillo = 3;
int numero = 0;

void setup() {
  Serial.begin(9600);
  pinMode(SalidaLedVerde, OUTPUT);
  pinMode(SalidaLedAmarillo, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    numero = Serial.read();
    if (numero > 0 && numero < 10) { // acota entre 1 y 9
      if (numero % 2 == 0) { // se cumple cuando es par
        digitalWrite(SalidaLedVerde, HIGH);
        digitalWrite(SalidaLedAmarillo, LOW);
      }
      else { // se cumple cuando es impar
        digitalWrite(SalidaLedVerde, LOW);
        digitalWrite(SalidaLedAmarillo, HIGH);
      }
    }
  }
}

Esa no se me habia ocurrido. Yo habia simplificado un poco mas la del bit menos significativo:

//Comprobacion paridad
      bool led = bitRead(numero, 0);     
      digitalWrite(SalidaLedVerde, ! led);
      digitalWrite(SalidaLedAmarillo, led);

̶Y̶ ̶y̶a̶ ̶p̶u̶e̶s̶t̶o̶s̶ ̶a̶ ̶j̶u̶g̶a̶r̶ ̶c̶o̶n̶ ̶b̶i̶t̶s̶ ̶:̶

 ̶/̶/̶C̶o̶m̶p̶r̶o̶b̶a̶c̶i̶o̶n̶ ̶p̶a̶r̶i̶d̶a̶d̶
̶ ̶ ̶ ̶ ̶ ̶ ̶d̶i̶g̶i̶t̶a̶l̶W̶r̶i̶t̶e̶(̶S̶a̶l̶i̶d̶a̶L̶e̶d̶V̶e̶r̶d̶e̶,̶ ̶!̶ ̶l̶o̶w̶B̶y̶t̶e̶(̶n̶u̶m̶e̶r̶o̶)̶)̶;̶
̶ ̶ ̶ ̶ ̶ ̶ ̶d̶i̶g̶i̶t̶a̶l̶W̶r̶i̶t̶e̶(̶S̶a̶l̶i̶d̶a̶L̶e̶d̶A̶m̶a̶r̶i̶l̶l̶o̶,̶ ̶l̶o̶w̶B̶y̶t̶e̶(̶n̶u̶m̶e̶r̶o̶)̶)̶;̶

Saludos.

Edicion : Tachado. eso no funciona , ver explicacion de @anon90500195 en post #17

1 Like