viernes, 24 de enero de 2014

Led RGB

Aunque no tienen una gran dificultad iré comentando los componentes que pruebo para cuando no me acuerde o por si le pica la curiosidad a alguien acerca de que se puede hacer con un componente.


El Led RGB no son mas que 3 leds juntos , normalmente de alta luminosidad que tienen el ánodo  o el cátodo común (normalmente comparten la masa). EL efecto es que se puede reproducir cualquier color, pero la verdad es que el rojo brilla bastante menos (al menos en este que yo he probado ), por lo que los colores son siembre verde-azulados.



Ejemplo con variación de colores

El programa y esquema  es de http://arduino-guay.blogspot.com.es/2012/08/led-rainbow-con-arduino.html



/*
*  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.
*/

// 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   = 6                                ;
int verde = 5;
int azul  = 3;

/*
* 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
}

No hay comentarios:

Publicar un comentario