/** RGB Rainbow* Ejemplo de como hacer un led 'Rainbow' con un led RGB de* ánodo común Se utilizan tres salidas con la instrucción* 'analogWrite' que produce una salida PWM para controlar* el brillo de cada led.* Autor: Jose Daniel Herrera* Fecha: 22/08/2012* http://arduino-guay.blogspot.com.es*/
// Retardo que determina la velocidad de la transicion entre// colores#define RETARDO 10#define MAXBRILLO 50
// Salidas para cada color (tiene que permitir PWM).int rojo = 9;
int verde = 11;
int azul = 10;
/** Funcion para variar el valor de PWM* Para dir =1 aumenta para dir = -1 disminuye*/void fade(int pin, int dir)
{ if ( dir != 1 )
{ for (int i = MAXBRILLO; i >= 0; i--)
{ analogWrite(pin, i); delay(RETARDO); } } else { for (int i = 0; i <= MAXBRILLO; i++)
{ analogWrite(pin, i); delay(RETARDO); } } }
/** Ponemos los pines como salidas , y */void setup()
{ pinMode(rojo, OUTPUT); pinMode(verde, OUTPUT); pinMode(azul, OUTPUT);
//Partimos del amarillo analogWrite(rojo, MAXBRILLO); analogWrite(verde, MAXBRILLO); analogWrite(azul, 0);
}
/** Vamos cambiando los tres colores de modo que se produce* Un paso por todos los colores RGB y sus mezclas 2 a 2*/void loop()
{
fade(verde,-1); // amarillo -> rojo fade(azul,1); // rojo -> violeta fade(rojo,-1); // violeta -> azul fade(verde,1); // azul -> cian fade(azul,-1); // cian -> verde fade(rojo,1); // verde -> amarillo}