Cómo usar un LED RGB con Arduino (Previsualizar)

LED RGB Magenta Arduino
Primero debes completar Salidas analógicas – PWM antes de ver esta lección

A simple vista, un LED RGB parece igual que los LEDs normales que ya hemos usado. Con la salvedad de que estos tienen 4 pines en lugar de 2. Esto es porque los LEDs RGB están formados por 3 LEDs de 3 colores distintos, Red/Green/Blue o Rojo/Verde/Azul. ¡Controlando la intensidad de cada uno de ellos podemos mezclar los colores!

¿Por qué tienen 4 pines?

Al unir 3 LEDs en un únco LED RGB, se conectan en común o el ánodo o el cátodo.

  • LEDs RGB ánodo común: comparten el pin que se conecta a la alimentación (en Arduino, 5V). Los otros tres pines se conectan a pines digitales, y poniéndolos a nivel bajo (LOW) encendemos cada color por separado.
  • LEDs RGB cátodo común: comparten el pin que se conecta a GND. Los otros tres pines se conectan a pines digitales, y poniéndolos a nivel alto (HIGH) encendemos cada color por separado.

led rgb esquema

 

Conexión a Arduino

El LED RGB que yo voy a usar es ánodo común, por tanto, lo voy a conectar a 5V. Si el tuyo es cátodo común, cámbialo por GND.

Además, cada color debe ir con su valor de resistencia:

NUNCA conectes un LED directamente a la alimentación sin resistencias. ¿Por qué?

ColorIFVFR @ 5V
Azul20 mA3.2 V91 ohm
Verde20 mA3.2 V91 ohm
Rojo20 mA1.9 V150 ohm

En caso de no disponer de los valores exactos que necesitamos, podemos un valor lo más cercano posible pero siempre superior.

¿Lo conectamos?

Como para mezclar los colores tenemos que jugar con la intensidad de cada uno de los LEDs que componen nuestro LED RGB, vamos a usar las salidas “analógicas” que tiene Arduino, mejor llamadas PWM. Esto es, tenemos que usar los pines digitales que tienen una marca (~) justo al lado del número. En Genuino UNO estos pines son el 3, 5, 6, 9, 10 y 11.

En un LED RGB ánodo común el pin que debemos conectar a 5V es el más largo del LED. Mirando el esquema de arriba el orden es Rojo (Red), 5V, Verde (Green), Azul (Blue). Entre cada pin del LED y el pin PWM debemos poner la resistencia. En definitiva, nuestro circuito queda así:

Esquema de conexión LED RGB y Arduino

Programación con Arduino IDE

Podemos controlar la intesidad de cada uno de los colores (rojo, verde y azul) por separado, añadiendo las cantidades de color que necesitemos de cada uno de ellos para conseguir el color que estemos buscando. ¡Vamos a hacerlo!

Abrimos un sketch nuevo en Arduino IDE.

Como es buena práctica, comenzamos declarando las constantes que van a representar al número de pin al que hemos conectado cada una de las patas del LED RGB.

const int LED_ROJO = 6; // Pin al que está conectado el color rojo
const int LED_VERDE = 5; // Pin al que está conectado el color verde
const int LED_AZUL = 3; // Pin al que está conectado el color azul

A continuación, en la función setup()inicializamos los LEDs:

void setup() {
  // Inicializamos los LEDs
  pinMode(LED_ROJO, OUTPUT);
  pinMode(LED_VERDE, OUTPUT);
  pinMode(LED_AZUL, OUTPUT);
}

Vamos a encender el LED rojo, verde y azul. Cada uno de los colores por separado. Como nuestro LED es ánodo común, 0 es el valor de encendido y 255 el valor de apagado. Así pues:

void loop() {
  analogWrite(LED_ROJO, 0); // Color rojo ON
  delay(1000);
  analogWrite(LED_ROJO, 255); // Color rojo OFF
  analogWrite(LED_VERDE, 0); // Color verde ON
  delay(1000);
  analogWrite(LED_VERDE, 255); //Color verde OFF
  analogWrite(LED_AZUL, 0); // Color azul ON
  delay(1000);
  analogWrite(LED_AZUL, 255); // Color azul OFF
}

El código nos ha quedado:

Si cargamos el código en nuestra placa Arduino, ¿qué ocurre?

¡Mola! Pero la principal función de un LED RGB es la de mezclar los colores. Vamos a mostrar ahora el amarillo, cian y magenta.

rgb

Para mostrar el color amarillo, debemos de encender tanto el LED rojo como el verde:

// Encendemos el rojo y el verde
analogWrite(LED_ROJO, 0); // Color rojo ON
analogWrite(LED_VERDE, 0); // Color verde ON
delay(1000);

Si lo que queremos es mostrar el cian, debemos de encender es el verde y azul:

// Apagamos el rojo, mantenemos encendido el verde y encendemos el azul
analogWrite(LED_ROJO, 255); // Color rojo OFF
analogWrite(LED_AZUL, 0); // Color azul ON
delay(1000);

Y, por último, para que se encienda de color magenta, debemos de encender los LEDs rojo y azul:

// Apagamos el verde, mantenemos el azul y encendemos el rojo
analogWrite(LED_VERDE, 255); // Color verde OFF
analogWrite(LED_ROJO, 0); // Color rojo ON
delay(1000);

Ahora nuestra función loop() es:

Combinándolo todo, para que se encienda rojo, verde, azul, amarillo, cian y magenta, nuestro código ha quedado asi:

Ahora te toca a ti

En esta lección hemos compuesto diferentes colores encendiendo y apagando los distintos LEDs que componen un LED RGB. Pero ¿sabías que aún pueden componerse muchos más colores? Jugando con los valores de analogWrite() de 0 a 255 podemos mezclar diferentes intensidades. Esto es, 256 intensidades diferentes por cada uno de los 3 LEDs… ¡Más de 16 millones de colores!

Jugando con los valores de analogWrite(), muestra otros colores en el LED RGB, como el naranja, rosa o blanco.

¡Cacharrea, crea y comparte tus proyectos!

Volver a: Iniciación a Arduino

©2017 Fábrica Digital desde Jerez de la Frontera, España.

956 05 77 07 (llamadas) / 717 717 452 (Whatsapp) / hola@fabricadigital.org

Horario de verano: de Lunes a Viernes de 09:00 a 13:00.

Calle Manuel Yélamo Crespillo, Edif. Los Ramos, 11401 Jerez de la Frontera, Cádiz. - Cómo llegar

Información Legal - Aceptamos

 

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account