Tabla de contenido:

Arduino y el controlador IC TLC5940 PWM LED: 7 pasos
Arduino y el controlador IC TLC5940 PWM LED: 7 pasos

Video: Arduino y el controlador IC TLC5940 PWM LED: 7 pasos

Video: Arduino y el controlador IC TLC5940 PWM LED: 7 pasos
Video: 11.Tutorial TLC5940 (SERIAL Y LED RGB) 2024, Noviembre
Anonim
Arduino y el controlador de LED TLC5940 PWM IC
Arduino y el controlador de LED TLC5940 PWM IC

En este artículo vamos a examinar el controlador IC de LED de 16 canales TLC5940 de Texas Instruments. Nuestra razón para hacer esto es demostrar otra forma más fácil de controlar muchos LED, y también servos. Primero, aquí hay algunos ejemplos del TLC5940. Puede solicitar TLC5940 de PMD Way con envío gratuito en todo el mundo.

El TLC5940 está disponible en la versión DIP y también para montaje en superficie. Realmente es una parte conveniente, que le permite ajustar el brillo de dieciséis LED individuales a través de PWM (modulación de ancho de pulso), y también puede conectar en cadena más de un TLC5940 para controlar aún más.

Durante este tutorial, explicaremos cómo controlar uno o más circuitos integrados TLC5940 con LED y también veremos cómo controlar los servos. En este punto, descargue una copia del TLC5940 (.pdf), ya que lo consultará a través de este proceso. Además, descargue e instale la biblioteca Arduino TLC5940 de Alex Leone que se puede encontrar aquí. Si no está seguro de cómo instalar una biblioteca, haga clic aquí.

Paso 1: Construya un circuito de demostración TLC5940

Construya un circuito de demostración TLC5940
Construya un circuito de demostración TLC5940

El siguiente circuito es el mínimo requerido para controlar dieciséis LED desde su Arduino o compatible. Puede usarlo para experimentar con varias funciones y tener una idea de lo que es posible. Necesitará:

  • Una placa Arduino Uno o compatible
  • 16 LED normales y cotidianos que pueden tener una corriente directa de hasta 20 mA
  • una resistencia de 2 kΩ (más o menos 10%)
  • una cerámica de 0.1uF y un capacitor electrolítico de 4.7uF

Tome nota de la orientación del LED, y recuerde que el TLC5940 es un controlador LED de ánodo común, por lo que todos los ánodos LED están conectados entre sí y luego a 5V.

Paso 2:

Para este circuito en particular, no necesitará una fuente de alimentación externa de 5 V; sin embargo, es posible que necesite una en el futuro. El propósito de la resistencia es controlar la cantidad de corriente que puede fluir a través de los LED. El valor de resistencia requerido se calcula con la siguiente fórmula:

R = 39.06 / Imax donde R (en ohmios) es el valor de la resistencia e Imax (en amperios) es la cantidad máxima de corriente que desea que fluya a través de los LED.

Por ejemplo, si tiene LED con una corriente directa de 20 mA, el cálculo de la resistencia sería: R = 39.06 / 0.02 = 1803 Ohms. Una vez que haya ensamblado el circuito, abra el IDE de Arduino y cargue el boceto BasicUse.pde que se encuentra en la carpeta de ejemplo de la biblioteca TLC5940.

Debería aparecer una salida similar a la que se muestra en el video.

Paso 3: controlar el TLC5940

Ahora que el circuito funciona, ¿cómo controlamos el TLC5940? Primero, las funciones obligatorias: incluya la biblioteca al comienzo del boceto con:

#include "Tlc5940.h"

y luego inicialice la biblioteca colocando lo siguiente en void setup ():

Tlc.init (x);

x es un parámetro opcional: si desea configurar todos los canales a un cierto brillo tan pronto como comience el boceto, puede insertar un valor entre 0 y 4095 para x en la función Tlc.init ().

Ahora para encender o apagar un canal / LED. Cada canal está numerado del 0 al 15, y el brillo de cada canal se puede ajustar entre 0 y 4095. Este es un proceso de dos partes … Primero, use una o más de las siguientes funciones para configurar los canales requeridos y el brillo respectivo (PWM nivel):

Tlc.set (canal, brillo);

Por ejemplo, si desea tener los primeros tres canales encendidos con el brillo total, use:

Tlc.set (0, 4095); Tlc.set (1, 4095); Tlc.set (2, 4095);

La segunda parte es usar lo siguiente para actualizar el TLC5940 con las instrucciones requeridas de la parte uno:

Tlc.update ();

Si desea apagar todos los canales a la vez, simplemente use:

Tlc.clear ();

Paso 4:

No es necesario llamar a TLC.update () después de la función de borrado. El siguiente es un boceto de ejemplo rápido que establece los valores de brillo / PWM de todos los canales en diferentes niveles:

#include "Tlc5940.h" void setup () {Tlc.init (0); // inicializar TLC5940 y desactivar todos los canales}

bucle vacío ()

{para (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); retraso (1000); para (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); retraso (1000); para (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); retraso (1000); para (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); retraso (1000); }

La capacidad de controlar el brillo individual para cada canal / LED también puede ser útil al controlar los LED RGB; luego puede seleccionar fácilmente los colores requeridos a través de diferentes niveles de brillo para cada elemento. En el video se muestra una demostración.

Paso 5: uso de dos o más TLC5940

Puede conectar en cadena bastantes TLC5940 para controlar más LED. Primero, conecte el siguiente TLC5940 al Arduino como se muestra en el circuito de demostración, excepto que conecte el pin SOUT (17) del primer TLC5940 al pin SIN (26) del segundo TLC5940, a medida que los datos viajan desde el Arduino, a través de el primer TLC5940 al segundo y así sucesivamente. Luego repita el proceso si tiene un tercero, etc. ¡No olvide el resisotr que establece la corriente!

A continuación, abra el archivo tlc_config.h ubicado en la carpeta de la biblioteca TLC5940. Cambie el valor de NUM_TLCS por el número de TLC5940s que ha conectado juntos, luego guarde el archivo y elimine también el archivo Tlc5940.o que también se encuentra en la misma carpeta. Finalmente reinicie el IDE. A continuación, puede consultar los canales del segundo y más TLC5940 secuencialmente desde el primero. Es decir, el primero es 0 ~ 15, el segundo es 16 ~ 29 y así sucesivamente.

Paso 6: Controlar los servos con el TLC5940

Como el TLC5940 genera una salida PWM (modulación de ancho de pulso), también es ideal para manejar servos. Al igual que los LED, puede controlar hasta dieciséis a la vez. Ideal para crear robots con forma de araña, relojes extraños o hacer ruido.

Al elegir su servo, asegúrese de que no consuma más de 120 mA cuando está funcionando (la corriente máxima por canal) y también preste atención a la sección "Manejo de corriente y calor" al final de este tutorial. Y use energía externa con servos, no confíe en la línea de 5V de Arduino.

Conectar un servo es simple: la línea GND se conecta a GND, el 5V (o el cable de voltaje de suministro) se conecta a su 5v (u otro suministro adecuado) y el pin de control del servo se conecta a una de las salidas del TLC5940. Finalmente, y esto es importante, conecte una resistencia de 2.2kΩ entre los pines de salida del TLC5940 que se están utilizando y 5V. Controlar un servo no es tan diferente a un LED. Necesita las dos primeras líneas al comienzo del boceto:

#include "Tlc5940.h" #include "tlc_servos.h"

luego lo siguiente en void setup ():

tlc_initServos ();

Luego, use la siguiente función para seleccionar qué servo (canal) operar y el ángulo requerido (ángulo):

tlc_setServo (canal, ángulo);

Al igual que los LED, puede agrupar algunos de estos y luego ejecutar el comando con:

Tlc.update ();

Así que veamos todo eso en acción. El siguiente boceto de ejemplo barre cuatro servos a lo largo de 90 grados:

#include "Tlc5940.h" #include "tlc_servos.h"

configuración vacía ()

{tlc_initServos (); // Nota: esto reducirá la frecuencia PWM a 50Hz. }

bucle vacío ()

{for (int ángulo = 0; ángulo = 0; ángulo--) {tlc_setServo (0, ángulo); tlc_setServo (1, ángulo); tlc_setServo (2, ángulo); tlc_setServo (3, ángulo); Tlc.update (); retraso (5); }}

El video muestra este boceto en acción con cuatro servos.

Si sus servos no giran en el ángulo correcto, por ejemplo, solicita 180 grados y solo giran a 90 o aproximadamente, se requiere un poco de trabajo adicional.

Debe abrir el archivo tlc_servos.h ubicado en la carpeta de la biblioteca TLC5940 Arduino y experimentar con los valores de SERVO_MIN_WIDTH y SERVO_MAX_WIDTH. Por ejemplo, cambie SERVO_MIN_WIDTH de 200 a 203 y SERVO_MAX_WIDTH de 400 a 560.

Paso 7: Gestión de la corriente y el calor

Como se mencionó anteriormente, el TLC5940 puede manejar un máximo de 120 mA por canal. Después de experimentar un poco, puede notar que el TLC5940 se calienta, y eso está bien.

Tenga en cuenta que existe un límite máximo para la cantidad de energía que se puede disipar antes de destruir la pieza. Si solo está utilizando LED normales de variedad de jardín o servos más pequeños, la alimentación no será un problema. Sin embargo, si planea usar el TLC5940 al máximo, revise las notas proporcionadas por los autores de la biblioteca.

Conclusión

Una vez más, estás en camino de controlar una parte increíblemente útil con tu Arduino. Ahora, con un poco de imaginación, puede crear todo tipo de pantallas visuales o divertirse con muchos servos.

Esta publicación es presentada por pmdway.com, que ofrece productos TLC5940 junto con todo para fabricantes y entusiastas de la electrónica, con entrega gratuita en todo el mundo.

Recomendado: