Codigo no enciende LED al recibir entrada por puerto Serie

int rojo = 4;
int azul = 5;
int verde = 7;

void setup() {
 Serial.begin(9600);
 pinMode(rojo,OUTPUT);
 pinMode(azul,OUTPUT);
 pinMode(verde,OUTPUT);
}

void loop() 
{
   while (Serial.available() > 0)
   {
     int Color=Serial.read();
      
      switch (Color) {
        case 1:
          digitalWrite(rojo,HIGH);
          digitalWrite(azul,LOW);
          digitalWrite(verde,LOW);
          Serial.println(rojo);
          break;
        case 2:
          digitalWrite(rojo,LOW);
          digitalWrite(azul,HIGH);
          digitalWrite(verde,LOW);
          Serial.println("azul");
          break;
        case 3:
          digitalWrite(rojo,LOW);
          digitalWrite(azul,LOW);
          digitalWrite(verde,HIGH);
          Serial.println("verde");
          break;
        case 4:
          digitalWrite(rojo,LOW);
          digitalWrite(azul,LOW);
          digitalWrite(verde,LOW);
          Serial.println("off");
          break;
    }
  }

}

Debería encender un led cuando se le pone un número en la terminal.

Cambia

int Color=Serial.read();

por

char Color=Serial.read();

y luego

case '1':
...
case '2':
...
etc.

Con comillas simples porque son caracteres, no cadenas.

Gracias

Moderador:
Titulo modificado porque no respeta las normas. Punto 5.

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