Codificação compatível com Arduino 08: Interface de um LED RGB usando Arduino

Codificación compatible con Arduino 08: interfaz de un LED RGB usando Arduino

En el tutorial anterior , discutimos la entrada analógica cuando usamos Arduino. Hasta ahora, hemos cubierto cuatro de las cinco formas en que los controladores pueden interactuar e interactuar con otros componentes y dispositivos electrónicos. Esto incluye salida digital, entrada digital, salida analógica y entrada analógica.

En este tutorial, analizamos cómo conectar LED RGB con Arduino . Los LED RGB son una combinación de tres LED (rojo, verde y azul), todos empaquetados como un solo LED. Estos LED se utilizan en una variedad de aplicaciones industriales, como indicadores de estado/energía, accesorios de plomería, tableros de señalización digital, anillos de LED, luces decorativas para el hogar y pantallas grandes para exteriores.

Controlando la intensidad de cada LED individual, se pueden producir casi 16 millones de colores. Los LED RGB se utilizan en la construcción de pantallas de diodos emisores de luz (DV LED) de visión directa que se utilizan ampliamente en la industria de la señalización digital.

LED RGB
Como se mencionó en la introducción, un LED RGB es una combinación de tres LED (rojo, verde y azul) en un solo paquete. Los dispositivos de visualización electrónicos utilizan una mezcla aditiva de colores para producir diferentes colores.

En la mezcla aditiva, el rojo, el verde y el azul son los colores primarios, que son colores que no se pueden crear mezclando otros. Pero al mezclar colores primarios, se pueden generar todos los demás colores.

Los receptores de color del ojo humano son los más sensibles a estos. Así, mezclando de forma aditiva estos colores, se puede generar la matriz más grande visible para el ojo humano.

El espacio de color generado al mezclar colores primarios se llama espacio de color RGB. Aquí hay unos ejemplos:

  • Al mezclar rojo y verde se crean matices de amarillo y naranja.
  • Al mezclar verde y azul, se crean tonos cian.
  • Al mezclar rojo y azul, se crean tonos de violeta y magenta.
  • Al mezclar los tres colores, se crean tonos de gris.
  • Cuando los tres colores están completamente saturados, se crea luz blanca.
  • La ausencia de los tres colores crea una luz negra en el entorno adecuado.

En una gran pantalla LED DV externa, cada LED RGB funciona como un píxel.

Con el LED RGB se puede producir casi cualquier color. Entonces, supongamos que la intensidad de cada color se cambia en una escala de 8 bits, lo que equivaldría a 16.777.216 colores (256 x 256 x 256) o aproximadamente 16 millones de colores que podrían producirse.

En un LED RGB, tres LED de color rojo, verde y azul están muy juntos. Es por eso que cuando estos LED emiten luz, la luz no se ve de forma individual, sino como una mezcla aditiva de tres luces.

La intensidad de cada LED de color se puede controlar aplicándoles una señal PWM. Si el ancho de pulso de esta señal en cada LED se cambia en valores de 8 bits, la intensidad de la luz de cada LED también cambia en la misma escala.

Se pueden producir aproximadamente 16 millones de colores diferentes en un LED RBG.

Tipos de LED RGB
Hay dos tipos de LED RGB: LED de ánodo común y LED RGB de cátodo común.

1. LED de ánodo común

En el LED de ánodo común, los tres LED tienen un ánodo común pero cátodos diferentes. Estos LED interactúan con un controlador para que el controlador absorba corriente a través de ellos.

En esta configuración, la señal PWM debe aplicarse a los terminales del cátodo para variar la intensidad de cada LED. Cuando aumenta el ancho de pulso de la señal PWM, la intensidad del LED disminuye y viceversa.

2. LED RGB de cátodo común

Con el LED RGB de cátodo común, los tres LED tienen un cátodo común pero sus ánodos son diferentes. Estos LED interactúan con un controlador para que el controlador les suministre corriente.

En esta configuración, la señal PWM debe aplicarse a los terminales del ánodo para variar la intensidad de cada LED. Cuando aumenta el ancho de pulso de la señal PWM, la intensidad del LED también aumenta y viceversa.

Ambos tipos de LED RGB son dispositivos de cuatro terminales con esta configuración de pines:

Los LED RGB de ánodo común y cátodo común se pueden distinguir fácilmente con un multímetro. Cuando utilice un multímetro, hágalo en modo de continuidad.

  • Coloca el cable positivo del multímetro en el cable más largo y el cable negativo en cualquier otro terminal. Si se enciende el LED rojo, verde o azul correspondiente, se trata de un LED de ánodo común.
  • Coloca el cable negativo del multímetro en el cable más largo y el cable positivo en cualquier otro terminal. Si el LED RGB se enciende esta vez, es un LED RGB de cátodo común.
  • Si ninguna de las conexiones funciona, es posible que uno o más de los LED del LED RGB estén dañados.

No linealidad
Es importante tener en cuenta que los tres LED del LED RGB tienen características VI diferentes. Por ejemplo, tienen diferentes voltajes directos y curvas VI ligeramente diferentes. Esto se debe a las diferencias entre los tipos de LED, según el color que emiten.

Las características eléctricas de las luces roja, verde y azul del LED RGB se enumeran a continuación:

La curva VI de los LED es exponencial y no lineal. Además, la corriente a través de cada CONDUCTOR alcanza su punto máximo en diferentes niveles de voltaje y aumenta en diferentes voltajes directos. Por lo tanto, en una aplicación comercial se deben tener en cuenta todos estos factores porque hay que variar la intensidad de cada LED para producir diferentes colores.

En las pantallas comerciales, la intensidad de cada LED varía según las señales analógicas verdaderas proporcionadas a través de convertidores de digital a analógico. Además, la no linealidad de la intensidad de la luz (o unidades de lux) de los LED rojo, verde y azul se corrige mediante corrección gamma y otras técnicas de calibración de color.

Por simplicidad, no tendremos en cuenta esta no linealidad de los LED RGB. En cambio, asumiremos que la intensidad de la luz de cada LED de color varía igualmente con respecto al voltaje directo aplicado, aumentando directamente desde el nivel de 0 V. Además, la curva de la región directa es lineal para todos los LED por la proporcionalidad de uno. Esto es sólo para simplificar nuestro programa de controlador. Pero recuerde, esto es sólo una suposición.

Aplicaciones de LED RGB
Los LED RGB se utilizan en diversas aplicaciones, como las siguientes:

1. Indicadores

2. Anillos LED

3. Luces decorativas

4. Instalaciones hidráulicas

5. Paneles y vallas publicitarias de señalización digital

6. Luces exteriores y espectáculos de luces.

Controlando el LED RGB con Arduino
La mayoría de las placas Arduino no tienen una verdadera salida analógica o, si la tienen, sólo ofrecen uno o dos canales. Sin embargo, la mayoría de las placas Arduino pueden emitir señales PWM. Por ejemplo, Arduino UNO puede generar una señal PWM usando la función analogWrite en los pines 3, 5, 6, 9, 10 y 11.

Las placas Arduino también pueden emitir señales PWM en cualquier pin utilizando temporizadores/contadores o bits de golpe.

Las señales PWM son una aproximación de los voltajes analógicos. Al aplicar una señal PWM, se puede lograr el mismo efecto en un LED RGB que si se aplicara voltaje analógico. Dado que la señal PWM generada mediante la función analogWrite puede variar el ciclo de trabajo, en una escala de 8 bits, el perfil de color RGB24 se puede imitar aplicando las señales PWM a los LED rojo, verde y azul del LED RGB.

De esta manera, se pueden producir colores a partir de un LED RGB que se compara directamente con los colores en el espacio de color RGB24, donde cada color está representado por valores hexadecimales de 24 bits.

El controlador LED RGB basado en Arduino ganancia
En esta receta, diseñaremos un controlador LED RGB usando Arduino. Este controlador de LED RGB no implicará ninguna corrección por la no linealidad de los LED rojo, verde y azul de un LED RGB.

Componentes necesarios
1. Arduino UNO x1
2. LED RGB x1
3. Resistencia de 330 ohmios x1
4. Tablero de prueba x1
5. Cables de unión o cables de conexión macho a macho

Conexiones de circuito
Primero, pruebe si su LED RGB es de cátodo común o de ánodo común. El LED RGB utilizado en este proyecto es el cátodo común. Por lo tanto, el terminal del cátodo común (el segundo terminal identificado por el cable más largo) debe conectarse a tierra a través de una resistencia en serie de 330 ohmios.

Los terminales de ánodo de los LED rojo, verde y azul del LED RGB están conectados a los pines 3, 9 y 10 de PWM del Arduino UNO. Estos pines pueden generar una señal PWM usando la función analogWrite. La placa de pruebas se alimenta mediante la tierra común y el riel de alimentación de 5 V de uno de los pines de tierra y el pin de 5 V del Arduino UNO, respectivamente.

Diagrama de circuito

Bosquejo de Arduino

`

Cómo funciona el proyecto
El LED RGB de cátodo común interactúa con el Arduino UNO, por lo que los pines PWM del Arduino suministran corriente a los LED de color del LED RGB. Desde los pines PWM, se aplica una señal PWM a los LED rojo, verde y azul mediante la función analogWrite.

La función genera una señal PWM con un ciclo de trabajo que se puede cambiar en una escala de 8 bits. Esto significa que la intensidad de cada LED se puede variar en 256 pasos o en una escala de 8 bits. De este modo, en un LED RGB se pueden generar colores del espacio cromático RGB24.

Estos colores se pueden comparar directamente con los colores en un espacio de color RGB24, donde cada color está representado por un valor hexadecimal de 24 bits. Por ejemplo, para producir un color rojo puro en un LED RGB (donde el color está representado por #FF0000), la intensidad de las luces RGB debe ser 255, es decir, 0 y 0 respectivamente.

A medida que los pines Arduino suministran corriente a los LED de colores, la intensidad de la luz de cada LED aumenta al aumentar el ancho del pulso aplicado a la señal PWM.

Si la intensidad de la luz de cada LED es directamente proporcional al ancho del pulso (aquí ignoramos la no linealidad del LED RGB, como las diferencias en los voltajes directos y las curvas VI), entonces aplicando señales PWM con ciclos de trabajo del 100%, 0 % y 0% en los LED rojo, verde y azul producirán luz roja pura.

Sin embargo, para que esto ocurra, el ciclo de trabajo de las señales PWM en los LED rojo, verde y azul debe configurarse en 255, 0 y 0, respectivamente.

De manera similar, para obtener luz verde pura, se deben aplicar señales PWM con ciclos de trabajo definidos por 0, 255 y 0 a los LED rojo, verde y azul. respectivamente.

Para obtener luz azul pura, se deben aplicar señales PWM con ciclos de trabajo definidos por 0, 0 y 255 a los LED rojo, verde y azul, respectivamente.

Para obtener luz blanca pura, se deben aplicar señales PWM con ciclos de trabajo definidos por 255, 255 y 255 a los LED rojo, verde y azul respectivamente.

Cuando todos los LED están apagados, representa el color negro. Los otros colores del espacio de color RGB24 se pueden producir definiendo el ciclo de trabajo de las señales PWM para los LED rojo, verde y azul y comparando directamente sus valores hexadecimales de 24 bits.

En este proyecto, se generan 25 colores diferentes a partir del LED RGB en intervalos de un segundo cada uno. Estos colores se enumeran a continuación según sus valores RGB hexadecimales y los valores del ciclo de trabajo utilizados para producirlos.

En este proyecto, se producen los siguientes colores en el LED RGB:

Guía de programación

Los pines 3, 9 y 10 que están conectados a los terminales R, G y B del LED RBG se definen en el boceto como variables globales R, G y B. Como estamos usando la función analogWrite para generar las señales PWM en el LED En terminales RGB, no es necesario configurar los pines mediante la función pinMode. Por lo tanto, la función de configuración está vacía.

entero R = 3;
G interno = 9;
interna B = 10;

configuración vacía {
}

En la función de bucle, se producen diferentes colores en el LED RGB aplicando las señales PWM de los diferentes ciclos de trabajo a los terminales R, G y B del LED RGB.

El ciclo de trabajo de las señales PWM a los terminales LED RGB es directamente proporcional a los valores RGB de esos colores. Estas señales PWM se generan llamando a la función analogWrite. La función de retardo se llama para proporcionar un intervalo de un segundo entre cada parpadeo de color.

Por ejemplo, para producir un color rojo, se utiliza este código:

escritura analógica(R, 255);
escritura analógica(G, 0);
escritura analógica(B, 0);
retraso(1000);

De manera similar, para producir luz de color verde, se utiliza este código:

escritura analógica(R, 0);
escritura analógica(G, 255);
escritura analógica(B, 0);
retraso(1000);

Y para producir luz azul, se utiliza este código:

escritura analógica(R, 0);
escritura analógica(G, 0);
escritura analógica(B, 255);
retraso(1000);

Para producir diferentes tonos en el espacio de color RGB24, las señales PWM se generan con un ciclo de trabajo directamente proporcional a sus valores RGB.

Por ejemplo, para producir una sombra con valor hexadecimal #2ecc71, con valor RGB 46, 204, 113, se utiliza este código:

escritura analógica(R, 46);
escritura analógica(G, 204);
escritura analógica(B, 113);
retraso(1000);

Para producir una luz de color blanco, se utiliza este código:

escritura analógica(R, 255);
escritura analógica(G, 255);
escritura analógica(B, 255);
retraso(1000);

Para mostrar negro, todos los LED deben apagarse estableciendo un ciclo de trabajo para todas las señales PWM en 0%. Dado que todos los LED están apagados, el color negro se mostrará en la configuración adecuada, como en ausencia de luz de fondo en un tablero de visualización.

escritura analógica(R, 0);
escritura analógica(G, 0);
escritura analógica(B, 0);
retraso(1000);

Nota: El código de función de bucle se repite un número infinito de veces, parpadeando diferentes colores en el LED RGB en la secuencia definida hasta que se enciende el Arduino UNO.

Inténtalo tú mismo
En este controlador LED RGB, la función analogWrite se utiliza para generar señales PWM para producir diferentes colores en LED RGB. Dado que el ciclo de trabajo de la señal PWM se puede variar utilizando la función analogWrite (entre 0 y 100% en una escala de 8 bits), es imposible corregir la no linealidad del LED RGB.

Sin embargo, si las señales PWM se generan mediante un temporizador/contador o mediante bit-banging (donde el período de ENCENDIDO y APAGADO de los pulsos PWM se controlan con una precisión de microsegundos), las señales PWM se pueden generar haciendo coincidir el ciclo de trabajo con el avance. voltajes de los LED rojo, verde y azul.

El ciclo de trabajo de cada señal PWM se puede variar en una escala de 8 bits para cada LED variando el voltaje de salida entre el voltaje de polarización directa y el voltaje al que sus corrientes aumentan exponencialmente en sus respectivas curvas VI.

Con un poco más de esfuerzo, se puede generar la señal PWM para imitar la curva exponencial real de las características VI de cada LED utilizando la biblioteca matemática y una función exponencial de la misma. Es posible que deba consultar la hoja de datos de LED RGB del fabricante para conocer las curvas características VI exactas y cada luz LED RGB específica a continuación.

En el próximo tutorial, analizaremos la interfaz de una pantalla de siete segmentos (SSD) con Arduino.

Vídeos de demostración


(tagsToTranslate)Arduino

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.