Well, let's start with a 'dumb' for begin.
The idea is that a RGB LED simulate the effect 'Rainbow' as some by themselves (RGB LED vary automatically its color, passing by the colors of the rainbow).
In my case I´m going to use a RGB LED Dealextreme. This 5 Watt-led produces a large amount of light and it is very robust.
As the arduino can not give a very large current for its output, i´ll use a ULN2003 driver to not load too.
This is the assembly:
And this the schema:
And here you have a video of the system running:
/* * 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 }
show!
ReplyDelete