Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Cómo extender las salidas PWM de Arduino – Tutorial TLC5940

En este tutorial de Arduino, aprenderemos a usar el controlador PWM TLC5940 con la placa Arduino. El TLC5940 es un controlador LED de 16 canales que proporciona salidas PWM y es perfecto para ampliar las capacidades de Arduino PWM. No solo LED, sino que con este IC también podemos controlar servos, motores de CC y otros componentes electrónicos mediante señales PWM.

Características básicas

  •  VCC =3 V a 5 V
  • 16 canales
  • Control PWM de 12 bits (4096 pasos)
  • Capacidad de conducción
        – 0 mA a 120 mA (VCC> 3,6 V)
        – 0 mA a 60 mA (VCC <3,6 V)
  • Interfaz de datos en serie
  • Velocidad de transferencia de datos de 30 MHz
  • Conexión en cadena

La conexión en cadena es una excelente característica, lo que significa que podemos conectar varios circuitos integrados TLC5970 en serie. Con esto, podemos extender las capacidades PWM de Arduino a más de 16 salidas, por ejemplo, 32, 48 o 64 salidas PWM y seguir usando los mismos 4 pines que usa la placa Arduino para controlar un TLC5940 IC.

Puede obtener los componentes de este tutorial en cualquiera de los siguientes sitios:

  • Arduino Nano…………………………..
  • LED rojos ultrabrillantes……………… 
  • Controladores LED TLC5940……………… 

Cableado de Arduino y TLC5940

Para controlar el TLC5940 necesitamos ocupar 4 pines de tu placa Arduino. Como usaremos la biblioteca Arduino TLC5940 hecha por Alex Leone, necesitamos conectar el IC al Arduino de acuerdo con la configuración de su biblioteca o usando los siguientes esquemas de circuito:

El esquema del circuito anterior usa una fuente de alimentación externa para alimentar los LED, pero también se puede conectar simplemente usando el VCC de Arduino si la cantidad total de corriente extraída no excede el límite del Arduino (Clasificación máxima absoluta, VCC de corriente CC y clavijas GND:200 mA).

También debemos tener en cuenta que el TLC5940 es un sumidero de corriente constante, por lo que la corriente fluye hacia los pines de salida. Esto significa que al conectar los LED necesitamos conectar el cable negativo (Cátodo) al pin de salida del IC y el cable positivo (Ánodo) al VCC de 5V.

También necesitamos 2 condensadores para el desacoplamiento y una resistencia para controlar la cantidad de corriente que fluye a través de las salidas. El valor de la resistencia depende del componente que queramos controlar y se puede seleccionar usando el siguiente diagrama de la hoja de datos del TLC5940.

De acuerdo con el diagrama, para controlar los LED que requieren una corriente de 20 mA, necesitamos una resistencia de 2 K.

Código fuente

Una vez que descargamos e instalamos la biblioteca Arduino TLC5940 creada por Alex Leone, podemos usar su ejemplo de demostración "Uso básico" para comprender cómo controlan las salidas del IC.

Aquí hay un código simple que hice para este tutorial para controlar 16 LED usando esta biblioteca. Lea los comentarios en el código para comprender cómo funcionan las funciones.

/*
 * Arduino and TLC5940 Tutorial - Simple Example
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */

#include "Tlc5940.h" 

void setup() {
  Tlc.init(0); // Initiates the TLC5940 and set all channels off
}
 
void loop() {
  Tlc.set(0,4095); //(Output Pin from 0 to 15,PWM Value from 0 to 4095)
  // Note: The previous function doesn't activates the output right away. The output will be activated when the Tlc.update() function will be executed!
  
  Tlc.update(); // Activates the previously set outputs
  delay(1000);

  // For activating all 16 outputs at the same time we can use a for loop for setting all of them to be set to PWM value of 4095. Then  the Tlc.updata() function will active them all at the same time.
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
  }
  Tlc.update();
  delay(1000);

  //The Tlc.clear() function clears all the outputs, or sets the PWM value of all outputs to 0
  Tlc.clear();
  Tlc.update();
  delay(1000);

  // This for loop will active all 16 LEDs one by one
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
    Tlc.update();
    delay(200);
    Tlc.clear();
    Tlc.update();
    delay(200);
  }
}Code language: Arduino (arduino)

Controlando más de un TLC5940

Para conectar más de uno de estos circuitos integrados en serie, podemos usar los mismos esquemas de circuito que se muestran arriba. La única diferencia es que la SOUT (salida de señal, pin 17) del primer IC debe conectarse al SIN (entrada de señal, pin 26) del segundo IC y así sucesivamente.

En cuanto a la parte de programación necesitamos hacer algunas modificaciones. En la carpeta de la biblioteca TLC5940 necesitamos modificar el archivo tlc_config.h y cambiar el valor de la variable NUM_TLCS al número de circuitos integrados TLC5940 conectados en serie y, en nuestro caso, ese valor es 2. Una vez hecho esto, ahora podemos abordar fácilmente todos los LED de 0 a 31 y use el mismo método de programación que se describió anteriormente.

Como ejemplo, en el siguiente enlace, puede consultar mi marco de fotos de corazón LED DIY:proyecto Arduino, donde utilizo 2 circuitos integrados TLC5940 para controlar 32 LED.


Proceso de manufactura

  1. Cómo medir la calidad del aire en OpenSensors
  2. Tutorial de bloqueo RFID de Arduino
  3. Cómo piratear mandos a distancia por infrarrojos
  4. ¿Qué tan alto eres?
  5. ¡¿Qué tan fácil es usar un termistor ?!
  6. Cómo hacer música con un Arduino
  7. Tutorial del sensor de huellas dactilares Arduino
  8. Cómo utilizar Modbus con Arduino
  9. Tutorial de Arduino:Mini piano
  10. Tutorial de Arduino:JARVIS v1 | Cómo hacer una automatización del hogar
  11. Tutorial de Arduino 01:Primeros pasos