Paso 4: Código de Arduino
Nota: no escribo este código yo mismo, es de un viejo proyecto de la mina donde tomé prestado este sencillo código para aprender de. Aunque no recuerdo al autor original. Pero creo que es del Sparkfun starter kit para aprender a utilizar LEDs RGB.
El cableado es tal que estoy usando un ánodo común (common ground). Es fácil utilizar una configuración del común-cátodo pero tienes que cambiar el código para revertir los altos y bajos. El arduino los ánodos se hunde a su terreno y controles de cada canal RGB individual utilizando pines PWM (Digital) 9, 10, 11. No importa en qué orden. Usé una resistencia de 100 ohm (1/2 W) antes de cada LED. No me gustó cómo dim fue con un valor más alto, y ya que cada LED es sólo por un corto período de tiempo no es demasiado grande un acuerdo. Sé que no es el valor correcto a utilizar, pero parece trabajar mejor.
Cabe señalar que no importa que pin se conecta a cual pin RGB. Por que me refiero puede conectarse verde azul y rojo con rojo y azul a verde y le siguen trabajo (o cualquier combinación). Todo que va a hacer es cambio de colores que aparecen en qué punto en el tiempo, como el código pasará por todas las combinaciones de todos modos.
de todos modos, aquí está el código de arduino a continuación:
int rojo = 9; Pin rojo del LED al pin PWM 9
int verde = 10; Perno verde del LED al pin PWM 10
int azul = 11; Pin azul del LED al pin PWM 11
int DELAY_TIME = 10; cambios de velocidad de decoloración
int MAX_BRIGHT = 255; establece el máximo brillo, brillo máximo 255
int COLOR_MIX = 0; variable para cambiar los colores que se mezclan en la instrucción switch
void //loop fade_in(int x) que poco a poco se enciende el LED con PWM
{
int contador;
para (contador = 0; contador < x; contador ++)
{
led_mixer (COLOR_MIX, contador);
Delay(DELAY_TIME);
}
}
void //loop fade_out(int x) que poco a poco se apaga el LED con PWM
{
int contador;
para (contador = x; contador > 0; contador--)
{
led_mixer (COLOR_MIX, contador);
Delay(DELAY_TIME);
}
}
void led_mixer (int color, int x) //uses instrucción switch para mezclar combinaciones de color
{
Switch(color)
{
caso 0:
analogWrite (rojo, x);
rotura;
caso 1:
analogWrite (verde, x);
rotura;
caso 2:
analogWrite (azul, x);
rotura;
caso 3:
analogWrite (azul, x);
analogWrite (verde, x);
rotura;
caso 4:
analogWrite (rojo, x);
analogWrite (azul, x);
rotura;
caso 5:
analogWrite (rojo, x);
analogWrite (verde, x);
rotura;
por defecto:
analogWrite (verde, x);
analogWrite (azul, x);
analogWrite (rojo, x);
rotura;
}
}
void setup()
{
nada para la configuración de
}
void loop() //loop para siempre
{
fade_in(MAX_BRIGHT); poco a poco hacia el LED brillo máximo
fade_out(MAX_BRIGHT); poco a poco se apaga el LED
COLOR_MIX ++; incrementar a la siguiente combinación de color
if(COLOR_MIX == 7) //if han exhibido todas las combinaciones de color, restablezca el ciclo de
{
COLOR_MIX = 0;
}
}