Paso 2: código
Lámpara de estado de ánimo RGB lisa
Cambia el color de un LED RGB sin problemas que sólo se convierte en
cuando está oscuro alrededor de ella.
Autor: Ricardo Ouvina
Fecha: 19/07/2012
Versión: 2.0
// ---------------------------------------------------
El brillo de los LED sigue estas ecuaciones:
Rojo = Sen (x)
Verde = pecado (x + PI/3)
Azul = pecado (x + 2PI/3)
para x de 0 a PI
// ---------------------------------------------------
flotador RGB [3];
ldrPin int = 0; LDR en entrada analógica 0 a leer la luz ambiental
ambientLight int; variable para almacenar el valor de la luz ambiental
int rojo = 11; LED rojo en Digital Pin 11 (PWM)
greenLed int = 10; LED verde en la 10 del Pin Digital (PWM)
blueLed int = 9; LED azul en la 9 Pin Digital (PWM)
void setup() {}
pinMode(redLed,OUTPUT); decir que arduino que es una salida
pinMode(greenLed,OUTPUT); / / enviar a arduino es una salida
pinMode(blueLed,OUTPUT); decir que arduino que es una salida
configurar todas las salidas a bajo
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
void loop() {}
para (float x = 0; x
RGB[0]=255*ABS(sin(x*(180/PI))); calcular el brillo para el led rojo
RGB[1]=255*ABS(sin((x+PI/3)*(180/PI))); calcular el brillo para el led verde
RGB[2]=255*ABS(sin((x+(2*PI)/3)*(180/PI))); / / calcular la luminosidad azul led
ambientLight=analogRead(ldrPin); leer un almacén de la luz ambiental
if(ambientLight>600) {/ / comenzar sólo si la luz ambiental es muy baja
escribir el brillo de los leds
analogWrite(redLed,RGB[0]);
analogWrite(greenLed,RGB[1]);
analogWrite(blueLed,RGB[2]);
}
Else {}
digitalWrite(redLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(blueLed,LOW);
}
para (int i = 0; i < 3; i ++) {}
Si (RGB [i] < 1) {}
Delay(100);
}
Si (RGB [i] < 5) {}
Delay(50);
}
Si (RGB [i] < 10) {}
Delay(10);
}
Si (RGB [i] < 100) {}
Delay(5);
}
}
Delay(1);
}
}