En este proyecto vamos a conectar 5 LED RGB (rojo, verde, azul) a Arduino Uno. Estos LED están conectados en paralelo para reducir el uso de PIN de Uno.
Un LED RGB típico se muestra en la siguiente figura:
El LED RGB tendrá cuatro pines como se muestra en la figura.
PIN1: Terminal negativo de color 1 o terminal positivo de color 1
PIN2: positivo común para los tres colores o negativo común para los tres colores
PIN3: Terminal negativo de color 2 o terminal positivo de color 2
PIN4: Terminal negativo de color 3 o terminal positivo de color 3
Por lo tanto, hay dos tipos de LED RGB, uno es el tipo de cátodo común (negativo común) y el otro es el tipo de ánodo común (positivo común). En CC (cátodo común o negativo común), habrá tres terminales positivos, cada terminal representando un color y un terminal negativo representando los tres colores. El circuito interno de un LED CC RGB se puede representar como se muestra a continuación.
Si queremos que ROJO esté encendido arriba, necesitamos encender el pin del LED ROJO y conectar a tierra el negativo común. Lo mismo ocurre con todos los LED. En CA (ánodo común o positivo común), habrá tres terminales negativos, cada terminal representando un color y un terminal positivo representando los tres colores. El circuito interno de un LED CA RGB se puede representar como se muestra en la figura.
Si queremos que ROJO esté encendido arriba, necesitamos conectar a tierra el pin del LED ROJO y alimentar el positivo común. Lo mismo ocurre con todos los LED.
En nuestro circuito vamos a utilizar el tipo CA (Common Anode o Common Positive). Para conectar 5 LED RGB a Arduino, generalmente necesitamos 5x4 = 20 PINS, por lo que vamos a reducir el uso de este PIN a 8 conectando LED RGB en paralelo y utilizando una técnica llamada multiplexación.
Componentes
Hardware: UNO, fuente de alimentación (5v), resistencia de 1KΩ (3 piezas), LED RGB (rojo, verde, azul) (5 piezas)
Software: Atmel studio 6.2 o Aurdino nightly.
Circuito y explicación de funcionamiento
La conexión del circuito para la interfaz RGB LED Arduino se muestra en la siguiente figura.
Ahora, para la parte complicada, digamos que queremos encender el LED ROJO en SET1 y el LED VERDE en SET2. Alimentamos el PIN8 y PIN9 de UNO, y masa PIN7, PIN6.
Con ese flujo tendremos ROJO en el primer SET y VERDE en el segundo SET ON, pero tendremos VERDE en SET1 y ROJO en SET2 ON con él. Por simple analogía, podemos ver que los cuatro LED cierran el circuito con la configuración anterior y todos brillan.
Entonces, para eliminar este problema, activaremos solo un SET a la vez. Digamos que en t = 0m SEC, SET1 está en ON. En t = 1m SEC, SET1 se desactiva y SET2 se activa. Nuevamente en t = 6m SEC, SET5 se apaga y SET1 se enciende. Esto continúa.
Aquí el truco es que el ojo humano no puede capturar una frecuencia superior a 30 HZ. Eso es si un LED se enciende y apaga continuamente a una velocidad de 30 HZ o más. El ojo ve el LED continuamente encendido. Sin embargo, éste no es el caso. El LED se encenderá y apagará constantemente. Esta técnica se llama multiplexación.
Simplemente hablando, alimentaremos cada cátodo común de 5 SETs 1 milli de segundo, por lo que en 5 milli de segundo habremos completado el ciclo, luego de eso el ciclo comienza desde SET1 nuevamente, esto continúa para siempre. Dado que los LED SET se encienden y apagan demasiado rápido. El humano predice que todos los SET están ENCENDIDOS todo el tiempo.
Entonces, cuando alimentamos SET1 en t = 0 milisegundos, conectamos a tierra el pin ROJO. En t = 1 milisegundo, alimentamos el SET2 y conectamos a tierra el pin VERDE (en este momento, el ROJO y el AZUL están en ALTO). El bucle va rápido y el ojo ve un brillo ROJO en el PRIMER SET y un brillo VERDE en el SEGUNDO SET.
Así es como programamos un LED RGB, iluminaremos todos los colores lentamente en programa para ver cómo funciona el multiplexado.