ARDUINO: Encender un LED RGB



En este tutorial vamos a tratar conceptos básicos de un LED RGB, así como el uso e implementación de este componente electrónico.

Materiales:

  • 1x Arduino

  • 1x LED RGB

  • 3x Resistores de 220Ω

  • Jumpers

¿Qué es un LED RGB?

Es un componente electrónico muy utilizado en paneles de publicidad que se conforman por matrices de LEDs. Por sus siglas en inglés (Red, Green and Blue) Rojo, Verde y Azul tiene la principal ventaja de poder reproducir casi cualquier color de una manera perfecta ya que realiza las combinaciones de estos colores para obtener otros.

¿Sabías que? Al combinar los colores rojo, verde y azul se puede obtener el color blanco.

En realidad, un LED RGB son 3 diodos LED empaquetados en un mismo dispositivo, es por esta razón que cuenta con 3 pines correspondientes a su respectivo color y una terminal negativa.

Como se mencionó, en un diodo LED es importante conectar una resistencia para evitar algún daño en los componentes, para más información y cálculos te recomiendo visitar Arduino: Encender un LED.

Esquema de montaje

La conexión para el circuito es muy similar a conectar un diodo LED, solo que en este ejemplo debemos de conectar 3 diodos Led. Los cátodos del diodo LED RGB se conectan a GND y los 3 ánodos se conectan en serie con las resistencias y a sus 3 respectivos pines digitales en la tarjeta Arduino que puedan proporcionar la señal PWM. Para poder variar los colores deseados, en este ejemplo se empleará PWM (Modulación por ancho de pulso) para la simulación de la salida analógica.  

Clic en la imagen para ampliar.

Código

El código es bastante simple, pero hemos agregado unas cuantas cosas extras, como por ejemplo usar una función.

Primero definimos los pines a usar, en este caso no usamos #define para cambiar un poco el código, y en lugar del #define usamos variables del tipo entero, se creó una variable del tipo global llamada pausa para usar un delay universal, si se cambia el valor de esta variable cambiará la velocidad de cambio en todo el programa.

En el setup se configuran los pines como salida, no pasamos a la explicación del loop ya que para eso primero debemos explicar la función color.

Se creó una función del tipo void ya que no regresará ningún valor y es llamada color, esta función recibirá tres parámetros del tipo entero que serán valores enteros o variables con un valor entre 0 y 255, estos parámetros pasan a la función analogWrite, en simples palabras, la función color se encarga de manipular los colores del led RGB.

Ya en el loop, mandamos llamar a la función varias veces para poder hacer funcionar el led RGB, hacemos mezcla de colores con los colores básicos, rojo, verde y azul.

Los valores de la función pueden ser manipulados con tres potenciómetros para poder hacer la mezcla de colores, esto se le deja al lector hacerlo.

int pinLedR = 11;  // pin Rojo del led RGB
int pinLedV = 10;  // pin Verde del led RGB
int pinLedA = 9;   // pin Azul del led RGB

int pausa = 1000;

void setup() {
  pinMode(pinLedR, OUTPUT);    // pone el pinLedR como output
  pinMode(pinLedV, OUTPUT);    // pone el pinLedV como output
  pinMode(pinLedA, OUTPUT);    // pone el pinLedA como output
}

void loop() {
  //  colores basicos:
  color(255, 0, 0);   // rojo
  delay(pausa);       // delay por pausa
  color(0, 255, 0);   // verde
  delay(pausa);       // delay por pausa
  color(0, 0, 255);   // azul
  delay(pausa);       // delay por pausa

  // colores mezclados:
  color(255, 255, 255); // blanco
  delay(pausa);       // delay por pausa
  color(255, 255, 0); // amarillo
  delay(pausa);       // delay por pausa
  color(255, 0, 255); // magenta
  delay(pausa);       // delay por pausa
  color(0, 255, 255); // cian
  delay(pausa);       // delay por pausa
  color(0, 0, 0);     // apagado
  delay(pausa);       // delay por pausa
}

// funcion para generar colores
void color (int rojo, int verde, int azul) {
  analogWrite(pinLedR, rojo);
  analogWrite(pinLedV, verde);
  analogWrite(pinLedA, azul);
}