Índice:

Arduino e o IC do driver de LED TLC5940 PWM: 7 etapas
Arduino e o IC do driver de LED TLC5940 PWM: 7 etapas

Vídeo: Arduino e o IC do driver de LED TLC5940 PWM: 7 etapas

Vídeo: Arduino e o IC do driver de LED TLC5940 PWM: 7 etapas
Vídeo: Texas Instruments TLC5940 LED Driver 2024, Novembro
Anonim
Arduino e o IC do driver de LED TLC5940 PWM
Arduino e o IC do driver de LED TLC5940 PWM

Neste artigo, vamos examinar o IC do driver de LED de 16 canais TLC5940 da Texas Instruments. Nossa razão para fazer isso é demonstrar outra maneira mais fácil de acionar muitos LEDs - e também servos. Primeiro, aqui estão alguns exemplos do TLC5940. Você pode solicitar o TLC5940 da PMD Way com entrega gratuita em todo o mundo.

O TLC5940 está disponível na versão DIP e também para montagem em superfície. É realmente uma parte conveniente, permitindo ajustar o brilho de dezesseis LEDs individuais via PWM (modulação por largura de pulso) - e você também pode conectar mais de um TLC5940 para controlar ainda mais.

Durante este tutorial, vamos explicar como controlar um ou mais ICs TLC5940 com LEDs e também ver como controlar os servos. Neste ponto, baixe uma cópia do TLC5940 (.pdf), pois você o consultará neste processo. Além disso, baixe e instale a biblioteca TLC5940 Arduino de Alex Leone, que pode ser encontrada aqui. Se você não tiver certeza de como instalar uma biblioteca, clique aqui.

Etapa 1: construir um circuito de demonstração TLC5940

Construir um Circuito de Demonstração TLC5940
Construir um Circuito de Demonstração TLC5940

O circuito a seguir é o mínimo necessário para controlar dezesseis LEDs de seu Arduino ou compatível. Você pode usá-lo para experimentar várias funções e ter uma ideia do que é possível. Você vai precisar de:

  • Um Arduino Uno ou placa compatível
  • 16 LEDs normais de uso diário que podem ter uma corrente direta de até 20 mA
  • um resistor de 2 kΩ (mais ou menos 10%)
  • uma cerâmica de 0,1uF e um capacitor eletrolítico de 4,7uF

Observe a orientação do LED - e lembre-se de que o TLC5940 é um driver de LED de ânodo comum - então todos os ânodos de LED são conectados juntos e, em seguida, a 5V.

Passo 2:

Para este circuito em particular, você não precisa de uma fonte de alimentação externa de 5 V - no entanto, você pode precisar de uma no futuro. O objetivo do resistor é controlar a quantidade de corrente que pode fluir pelos LEDs. O valor do resistor necessário é calculado com a seguinte fórmula:

R = 39,06 / Imax onde R (em Ohms) é o valor do resistor e Imax (em Amps) é a quantidade máxima de corrente que você deseja que passe pelos LEDs.

Por exemplo, se você tiver LEDs com uma corrente direta de 20 mA - o cálculo do resistor seria: R = 39,06 / 0,02 = 1803 Ohms. Depois de montar o circuito - abra o IDE do Arduino e carregue o esboço BasicUse.pde que está na pasta de exemplo da biblioteca TLC5940.

Você deve ver uma saída semelhante à mostrada no vídeo.

Etapa 3: Controlando o TLC5940

Agora que o circuito funciona, como controlamos o TLC5940? Em primeiro lugar, as funções obrigatórias - incluem a biblioteca no início do esboço com:

#include "Tlc5940.h"

e inicializar a biblioteca colocando o seguinte em void setup ():

Tlc.init (x);

x é um parâmetro opcional - se você quiser definir todos os canais para um certo brilho assim que o esboço começar, você pode inserir um valor entre 0 e 4095 para x na função Tlc.init ().

Agora, para ligar ou desligar um canal / LED. Cada canal é numerado de 0 a 15, e o brilho de cada canal pode ser ajustado entre 0 e 4095. Este é um processo de duas partes … Primeiro - use uma ou mais das seguintes funções para configurar os canais necessários e o respectivo brilho (PWM nível):

Tlc.set (canal, brilho);

Por exemplo, se você quiser que os três primeiros canais estejam com brilho total, use:

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

A segunda parte é usar o seguinte para atualizar o TLC5940 com as instruções necessárias da primeira parte:

Tlc.update ();

Se você deseja desligar todos os canais de uma vez, basta usar:

Tlc.clear ();

Passo 4:

Você não precisa chamar um TLC.update () após a função limpar. A seguir está um esboço de exemplo rápido que define os valores de brilho / PWM de todos os canais em diferentes níveis:

#include "Tlc5940.h" void setup () {Tlc.init (0); // inicializa o TLC5940 e desativa todos os canais}

void loop ()

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

A capacidade de controlar o brilho individual para cada canal / LED também pode ser útil ao controlar LEDs RGB - você pode então selecionar facilmente as cores necessárias por meio de diferentes níveis de brilho para cada elemento. Uma demonstração é mostrada no vídeo.

Etapa 5: usando dois ou mais TLC5940s

Você pode conectar em cadeia vários TLC5940s para controlar mais LEDs. Primeiro - conecte o próximo TLC5940 ao Arduino conforme mostrado no circuito de demonstração - exceto conectar o pino SOUT (17) do primeiro TLC5940 ao pino SIN (26) do segundo TLC5940 - conforme os dados viajam do Arduino, através o primeiro TLC5940 para o segundo e assim por diante. Em seguida, repita o processo se você tiver um terceiro, etc. Não se esqueça do resistor que define a corrente!

Em seguida, abra o arquivo tlc_config.h localizado na pasta da biblioteca TLC5940. Altere o valor de NUM_TLCS para o número de TLC5940s conectados entre si, salve o arquivo e exclua também o arquivo Tlc5940.o também localizado na mesma pasta. Finalmente reinicie o IDE. Você pode então referir-se aos canais do segundo e outros TLC5940 sequencialmente a partir do primeiro. Ou seja, o primeiro é 0 ~ 15, o segundo é 16 ~ 29 e assim por diante.

Etapa 6: Controlando Servos com o TLC5940

Como o TLC5940 gera saída PWM (modulação por largura de pulso), ele também é ótimo para acionar servos. Assim como os LEDs - você pode controlar até dezesseis de uma vez. Ideal para criar robôs semelhantes a aranhas, relógios estranhos ou fazer algum barulho.

Ao escolher seu servo, certifique-se de que ele não consuma mais de 120 mA ao operar (a corrente máxima por canal) e também preste atenção à seção "Gerenciando corrente e calor" no final deste tutorial. E use alimentação externa com servos, não confie na linha 5V do Arduino.

Para conectar um servo é simples - a linha GND se conecta ao GND, o 5V (ou cabo de tensão de alimentação) se conecta ao seu 5v (ou outra fonte adequada) e o pino de controle do servo se conecta a uma das saídas do TLC5940. Finalmente - e isso é importante - conecte um resistor de 2,2kΩ entre o (s) pino (s) de saída do TLC5940 sendo usado e 5V. Controlar um servo não é tão diferente de um LED. Você precisa das duas primeiras linhas no início do esboço:

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

então o seguinte em void setup ():

tlc_initServos ();

Em seguida, use a seguinte função para selecionar qual servo (canal) operar e o ângulo necessário (ângulo):

tlc_setServo (canal, ângulo);

Assim como os LEDs, você pode agrupar alguns deles e, em seguida, executar o comando com:

Tlc.update ();

Então, vamos ver tudo isso em ação. O seguinte esboço de exemplo varre quatro servos em 90 graus:

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

void setup ()

{tlc_initServos (); // Observação: isso reduzirá a frequência PWM para 50Hz. }

void loop ()

{para (ângulo interno = 0; ângulo = 0; ângulo--) {tlc_setServo (0, ângulo); tlc_setServo (1, ângulo); tlc_setServo (2, ângulo); tlc_setServo (3, ângulo); Tlc.update (); atraso (5); }}

O vídeo mostra este esboço em ação com quatro servos.

Se seus servos não estão girando no ângulo correto - por exemplo, você pede 180 graus e eles giram apenas 90 graus ou por aí, um pouco de trabalho extra é necessário.

Você precisa abrir o arquivo tlc_servos.h localizado na pasta da biblioteca TLC5940 Arduino e experimentar os valores de SERVO_MIN_WIDTH e SERVO_MAX_WIDTH. Por exemplo, altere SERVO_MIN_WIDTH de 200 para 203 e SERVO_MAX_WIDTH de 400 para 560.

Etapa 7: Gerenciando Corrente e Calor

Conforme mencionado anteriormente, o TLC5940 pode lidar com um máximo de 120 mA por canal. Depois de algumas experiências, você pode notar que o TLC5940 esquenta - e tudo bem.

Observe que há um limite máximo para a quantidade de energia que pode ser dissipada antes de destruir a peça. Se você estiver usando apenas LEDs comuns ou servos menores, a energia não será um problema. No entanto, se você está planejando usar o TLC5940 ao máximo, analise as notas fornecidas pelos autores da biblioteca.

Conclusão

Mais uma vez, você está prestes a controlar uma parte incrivelmente útil com seu Arduino. Agora, com um pouco de imaginação, você pode criar todos os tipos de exibições visuais ou se divertir com muitos servos.

Esta postagem é trazida a você por pmdway.com - que oferece produtos TLC5940 junto com tudo para fabricantes e entusiastas de eletrônicos, com entrega gratuita em todo o mundo.

Recomendado: