Paso 2: Aquí está el código
/*De la Arduino Cookbook, receta 7.4 (Open Source), Michael Margolis
* Bosquejo RGB_LEDs
* RGB LED de analógica puertos de salida
*/
const int redPin = 3; elegir el pin para cada uno de los LEDs
const int greenPin = 5;
const int bluePin = 6;
const invertir boolean = false; sistema true si común ánodo, cátodo false si común
int color = 0; un valor de 0 a 255 representando el matiz
int R, G, B; los componentes de color rojo verde y azul
void setup()
{
pernos por analogWrite no necesita declararse como salidas
}
void loop()
{
brillo de int = 255; 255 es brillo máximo
hueToRGB (color, brillo); llamar a función para convertir el color en RGB
Escriba los valores RGB a los pines
analogWrite (redPin, R);
analogWrite (greenPin, G);
analogWrite (bluePin, B);
color ++; incremento del color
if(color > 255)
color = 0;
Delay(50);
}
función para convertir un color en sus componentes rojo, verde y azul.
void hueToRGB (int tono, int brillo)
{
unsigned int scaledHue = (tono * 6);
unsigned int segmento = scaledHue / 256; segmento de 0 a 5 en la
rueda de color
unsigned int segmentOffset =
scaledHue - (segmento * 256); posición dentro del segmento de
unsigned int complemento = 0;
unsigned int anterior = (brillo * (255 - segmentOffset)) / 256;
unsigned int siguiente = (brillo * segmentOffset) / 256;
if(Invert)
{
brillo = 255-brillo;
complemento = 255;
Prev = 255-anterior;
siguiente = 255-siguiente;
}
interruptor (segmento) {}
caso 0: / / rojo
R = brillo;
G = siguiente;
B = complemento;
rotura;
caso 1: / / amarillo
R = anterior;
G = brillo;
B = complemento;
rotura;
caso 2: / / verde
R = complemento;
G = brillo;
B = siguiente;
rotura;
caso 3: / / cian
R = complemento;
G = anterior;
B = brillo;
rotura;
caso 4: / / azul
R = siguiente;
G = complemento;
B = brillo;
rotura;
caso 5: / / magenta
por defecto:
R = brillo;
G = complemento;
B = anterior;
rotura;
}
}