Panama Hitek Logo
Panama Hitek Logo

Composición de colores RGB con Arduino

El sistema de color RGB se basa en tres colores primarios: rojo, verde y azul. Al combinar estos tres colores, es posible representar una amplia gama de tonos y matices. Como se mencionó en un post anterior, RGB es una sigla en inglés que corresponde a Red (rojo), Green (verde) y Blue (azul). Aquí en Panama Hitek ya se ha escrito antes sobre LEDs RGB.

Utilizando la función «analogWrite()» de Arduino, es posible controlar el brillo de cada canal de color (rojo, verde y azul) utilizando la modulación de anchura de pulso (PWM). Ajustando el valor PWM de cada canal, es posible crear cualquier color deseado mezclando diferentes niveles de luz roja, verde y azul.

En este post, nuestro objetivo es conseguir que un LED RGB de cátodo común brille con un color determinado. Para lograrlo, utilizaremos tres potenciómetros para ajustar el color. Conectaremos el terminal central de cada potenciómetro a los terminales R, G y B del módulo RGB, respectivamente.

Los terminales de los extremos de todos los potenciómetros se conectarán a +5V y GND, respectivamente. De esta manera, podremos controlar el brillo de cada canal de color (rojo, verde y azul) mediante la modulación de anchura de pulso (PWM) y crear el color deseado mezclando diferentes niveles de luz roja, verde y azul.

Para utilizar los potenciómetros para ajustar el color del LED RGB, debemos tener en cuenta que el valor del potenciómetro varía entre 0 y 1023 (0 – 5V) cuando modificamos la posición del mando. Sin embargo, para controlar el brillo de cada canal de color (rojo, verde y azul) utilizando la modulación de anchura de pulso (PWM), necesitamos valores entre 0 y 255 (0 – 5V).

Para convertir el valor del potenciómetro a un formato compatible con PWM, podemos dividir la lectura del potenciómetro entre 4 y aplicar el resultado directamente al terminal del módulo RGB correspondiente. De esta manera, podremos crear el color deseado mezclando diferentes niveles de luz roja, verde y azul.

Por ejemplo, si queremos crear el color blanco utilizando los potenciómetros, deberemos ajustar el valor de cada uno de ellos a 1023 (1023/4 = 255). Esto equivale a entregar los 5V directamente a cada canal de color (rojo, verde y azul). Existen millones de combinaciones posibles de colores RGB, y a continuación podemos ver una muestra de algunos de ellos:

    • Rojo: (255, 0, 0)
    • Verde: (0, 255, 0)
    • Azul: (0, 0, 255)
    • Amarillo: (255, 255, 0)
    • Magenta: (255, 0, 255)
    • Cyan: (0, 255, 255)
    • Blanco: (255, 255, 255)

Esto lo vemos representado en la siguiente imagen:

Muestra de colores RGB

Para comprobar el valor que está entregando cada potenciómetro disponemos del monitor serie del IDE de Arduino que nos irá mostrando los valores exactos que estamos aplicando a los terminales R, G y B del módulo RGB.

Monitor serie con valores RGB

A continuación os muestro los materiales necesarios para el montaje del proyecto, el diagrama de conexión y el programa en sí que deberemos cargar a nuestro Arduino UNO.

Lista de Materiales
    • Arduino UNO Rev.3
    • Cable USB tipo A-B
    • LED RGB de  5mm (cátodo común)
    • 3 Resistencias de 220Ω
    • 3 Potenciómetros lineales de 10KΩ
    • Protoboard
    • Cables de conexión

NOTA: Si utilizamos un módulo RGB, no nos hace falta utilizar ni el LED RGB ni las resistencias, puesto que ya viene todo integrado en una pequeña placa.

Código del programa

Video

Siguiendo los pasos descritos en el código y las instrucciones del video, deberías poder construir un circuito que te permita ajustar el color de un LED RGB utilizando potenciómetros. Con este circuito, podrás experimentar con diferentes combinaciones de colores y aprender más sobre cómo funcionan los colores RGB y cómo manipularlos utilizando la plataforma Arduino.

Espero que esta información te sea útil y te deseo lo mejor de suerte con tu proyecto. Si tienes alguna pregunta o necesitas más ayuda, no dudes en preguntar.

Posts relacionados

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados