LEDS Centenas, Decenas y Unidades

Hola, buen dia. Hace unos días tuve un examen el cual pase con trampa, consistia en hacer que el codigo hicera encender 3 LEDS depende del numero que se ingresara (Centenas, Decenas y Unidades) es decir; si se ingresaba "124" se encencian todos si se ingresaba "56" se encendian 2 y si se ingresaba "9" solo se enceendia un LED. Pero habia un ejercicio extra que era si un numero llevaba un "0" se apagara el Led donde se colocara el "0" como "100, 200, 10, 20, 501, 210" entonces yo solo puse como valor unico al numero "100 y 10" y el profesor no lo noto y obtuve esos puntos extra, pero quisiera no quedarme con la duda, ¿Alguien podría decirme como hacerlo correctamente?
Abajo el codigo que use

int led_amarillo=12;
int led_rojo=13;
int led_verde=11;
String mensaje="";

void setup()
{
Serial.begin(9600);
pinMode(led_amarillo, OUTPUT);
pinMode(led_rojo, OUTPUT);
pinMode(led_verde, OUTPUT);
}
void loop()
{
Serial.println("Ingrese un NUMERO:");
//Espera hasta que llegue algo
while (Serial. available ()==0);
//Recbe el dato como entero
int val=Serial. parseInt ();
// Vacia el buffer
Serial.flush();

if(val>=101 && val <=999)
{
digitalWrite(led_amarillo, HIGH);
digitalWrite(led_rojo, HIGH);
digitalWrite(led_verde, HIGH);
mensaje="se encienden todos";
}
if(val>=11 && val<=99)
{
digitalWrite(led_amarillo, HIGH);
digitalWrite(led_rojo, LOW);
digitalWrite(led_verde, HIGH);
mensaje="se enciende el led amarillo y verde";
}

if(val>=1 && val<=9)
{
digitalWrite(led_amarillo, LOW);
digitalWrite(led_rojo, LOW);
digitalWrite(led_verde, HIGH);
mensaje="se enciende el led verde";
}
if(val==100)
{
digitalWrite(led_amarillo, LOW);
digitalWrite(led_rojo, HIGH);
digitalWrite(led_verde, LOW);
mensaje="se enciende el led rojo";
}
if(val==10)
{
digitalWrite(led_amarillo, HIGH);
digitalWrite(led_rojo, LOW);
digitalWrite(led_verde, LOW);
mensaje="se enciende el led amarillo";
}
if(val>=1000)
{
digitalWrite(led_rojo, HIGH); // enciende el LED.
delay(500); // retardo en milisegundos
digitalWrite(led_rojo, LOW); // apaga el LED.
delay(500);
digitalWrite(led_amarillo, HIGH); // enciende el LED.
delay(500); // retardo en milisegundos
digitalWrite(led_amarillo, LOW); // apaga el LED.
delay(500);
digitalWrite(led_verde, HIGH); // enciende el LED.
delay(500); // retardo en milisegundos
digitalWrite(led_verde, LOW); // apaga el LED.
delay(500);
}
if(val<=0)
{
digitalWrite(led_rojo, HIGH); // enciende el LED.
delay(500); // retardo en milisegundos
digitalWrite(led_rojo, LOW); // apaga el LED.
delay(500);
digitalWrite(led_amarillo, HIGH); // enciende el LED.
delay(500); // retardo en milisegundos
digitalWrite(led_amarillo, LOW); // apaga el LED.
delay(500);
digitalWrite(led_verde, HIGH); // enciende el LED.
delay(500); // retardo en milisegundos
digitalWrite(led_verde, LOW); // apaga el LED.
delay(500);
}
Serial.println("El numero es..");
Serial.println(val);
Serial.println(mensaje);

}

Hola Ulises_Jimenez, bienvenido. Por favor edita su mensaje y pon tu código entre las etiquetas adecuadas, son normas del foro.

Ulises_Jimenez:
Pero habia un ejercicio extra que era si un numero llevaba un "0" se apagara el Led donde se colocara el "0" como "100, 200, 10, 20, 501, 210"

Hay una manera muy simple de saber si hay un cero en cualquier posición y es convertir el int en String.

String n = (String) val;
if (n.substring(0,1) == "0")
if (n.substring(1,2) == "0")
if (n.substring(2,3) == "0")

Lee las normas del foro y edita tu código usando etiquetas </>.

A ver, has escrito demasiado, el problema se puede resolver sin tanto código y solo un if para ver si el numero es mayor de 999.
Simplemente hay que escribir las centenas en el led de las centenas y lo mismo con los otros leds...

void loop()
{
 Serial.println("Ingrese un NUMERO:");
 //Espera hasta que llegue algo
 while (Serial. available ()==0);
 //Recbe el dato como entero
 int val=Serial. parseInt ();
 // Vacia el buffer
 Serial.flush();

 int numero=val;
 bool unidades = numero % 10;
 numero/=10;
 bool decenas = numero % 10;
 numero/=10;
 bool centenas = numero % 10;
 numero/=10;

 if(numero){
   Serial.println("Mayor de 999.");
   return;
  }

 digitalWrite(led_verde,unidades);
 digitalWrite(led_amarillo,decenas);
 digitalWrite(led_rojo,centenas);

 Serial.println("Centenas:" + String(centenas) + " Amarillo:" + decenas + " Verde:" + unidades  );
 Serial.println("El numero es..");
 Serial.println(val);
 
}

saludos.