hola, bueno tengo un proyecto y como parte de este, tengo q encender unos leds a traves de la pc, estoy utilizando el puerto serial para la comunicacion, y he condicionado el programa para q al recibir un numero entre 1 y 5 encienda un led, si recibe un numero entre 6 y 10 enciende otro, otro de 11 a 15, un 4o de 16 a 2o y un 5o led si recibe un numero entre 21 y 25, pero no he podido hacerlo funcionar, inicie con un programa basado en switch case, pero no me funciono para nada, ahora cambien a una logica de if else y aun no me funciona, podria alguien checar mi codigo y orientarme diciendome en q estoy fallando?
//-------- codigo de encendido de leds---------
//seleccion de los pines a utilizar
int ledC1 = 2;
int ledC2 = 3;
int ledC3 = 5;
int ledC4 = 6;
int ledC5 = 7;
void setup()
{
Serial.begin (9600); //inicio de la comunicacion serial
pinMode (ledC1,OUTPUT);
pinMode (ledC2,OUTPUT);
pinMode (ledC3,OUTPUT);
pinMode (ledC4,OUTPUT);
pinMode (ledC5,OUTPUT);
} //FIN DE SETUP
void loop()
{
int val = Serial.read()-48;//variable de lectura del serial
if (('1'<=val)&&(val<='5'))
{
digitalWrite (ledC1, HIGH) ;
}
else if (('6'<=val)&&(val<='10'))
{
digitalWrite (ledC2, HIGH) ;
}
else if (('11'<=val)&&(val<='15'))
{
digitalWrite (ledC3, HIGH) ;
}
else if (('16'<=val)&&(val<='20'))
{
digitalWrite (ledC4, HIGH) ;
}
else if (('21'<=val)&&(val<='25')){
digitalWrite (ledC5, HIGH) ;
}
else
{
digitalWrite (ledC1, LOW);
digitalWrite (ledC2, LOW);
digitalWrite (ledC3, LOW);
digitalWrite (ledC4, LOW);
digitalWrite (ledC5, LOW);
}
}//fin de loop
gracias anticipadas