Buenas, quiero hacer un programa por el cual, a traves de una app que he creado, sea capaz de encender el led con el color deseado. Para encenderlo del color que quiera de forma fija no tengo problema, el problema surge cuando en otro modo hago que el led haga aumentar y disminuir su intensidad. Quiero que entre en un bucle y cambie su intensidad hasta que yo desde la app le diga qe haga otra cosa, tengo el problema de que no me sale del bucle cuando por ejemplo selecciono a que se ponga a luz fija.
int luminosidad = 0;
char datos_serial=0;
//char enviar_dato ;
int G = 9;
int B = 10;
int R = 11;
void setup()
{
Serial.begin(9600);
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
}
// void Color(int R, int G, int B)
// {
// analogWrite(9 , R) ; // Red - Rojo
// analogWrite(10, G) ; // Green - Verde
// analogWrite(11, B) ; // Blue - Azul
// }
void loop(){
if (Serial.available()>0){
char datos_serial =Serial.read();
/////LUCES FIJAS/////
//Rojo fijo
if(datos_serial == 'C')
{
analogWrite(R,255);
analogWrite(G,0);
analogWrite(B,0);
}
//Azul fijo
if(datos_serial == 'A')
{
analogWrite(R,0);
analogWrite(G,0);
analogWrite(B,255);
}
//Verde fijo
if(datos_serial == 'B')
{
analogWrite(R,0);
analogWrite(G,255);
analogWrite(B,0);
}
//Celeste fijo
if(datos_serial == 'F')
{
analogWrite(R,0);
analogWrite(G,255);
analogWrite(B,255);
}
//Rosa fijo
if(datos_serial == 'E')
{
analogWrite(R,255);
analogWrite(G,0);
analogWrite(B,255);
}
//Amarillo fijo
if(datos_serial == 'D')
{
analogWrite(R,255);
analogWrite(G,255);
analogWrite(B,0);
}
/////LUCES TENUES/////
//Rojo tenue
if(datos_serial == 'J')
{
for (luminosidad = 0;
luminosidad <= 255;
luminosidad=luminosidad+5)
{
analogWrite(R, luminosidad); // ilumina el led con el valor asignado a luminosidad (entre 0 y 255)
delay(30);}
for (luminosidad = 255; //for hace decrecer la luminocidad de 5 en 5
luminosidad >=0;
luminosidad=luminosidad-5)
{
analogWrite(R, luminosidad);
delay(30);
}
//}
}
//Azul tenue
if(datos_serial == 'H'){
for (luminosidad = 0;
luminosidad <= 255;
luminosidad=luminosidad+5)
{
analogWrite(B, luminosidad);
analogWrite(R, 0);
analogWrite(G, 0);
delay(30);}
for (luminosidad = 255;
luminosidad >=0;
luminosidad=luminosidad-5)
{
analogWrite(B, luminosidad);
analogWrite(R, 0);
analogWrite(G, 0);
delay(30);
}
}
//Verde fijo
if(datos_serial == 'B')
{
analogWrite(R,0);
analogWrite(G,255);
analogWrite(B,0);
}
//Celeste fijo
if(datos_serial == 'F')
{
analogWrite(R,0);
analogWrite(G,255);
analogWrite(B,255);
}
//Rosa fijo
if(datos_serial == 'E')
{
analogWrite(R,255);
analogWrite(G,0);
analogWrite(B,255);
}
//Amarillo fijo
if(datos_serial == 'D')
{
analogWrite(R,255);
analogWrite(G,255);
analogWrite(B,0);
}
}
}
La app esta creada en appinventor y lo que hago es enviar una letra cada vez que pulso el boton para cada color.