Índice:
- Etapa 1: construir um circuito de demonstração TLC5940
- Passo 2:
- Etapa 3: Controlando o TLC5940
- Passo 4:
- Etapa 5: usando dois ou mais TLC5940s
- Etapa 6: Controlando Servos com o TLC5940
- Etapa 7: Gerenciando Corrente e Calor
Vídeo: Arduino e o IC do driver de LED TLC5940 PWM: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
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
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:
Boomstick - Driver de LED animado: 10 etapas
Boomstick - Driver de LED animado: Boomstick é um projeto para criar uma string animada de LEDs RGB programáveis, alimentado por um pequeno Arduino e reativo à música. Este guia concentra-se em uma configuração de hardware que você pode montar para executar o software Boomstick. Este h
Driver DIY 4xN LED: 6 etapas
Driver DIY 4xN LED: Os visores LED são amplamente usados em sistemas que variam de relógios digitais, contadores, temporizadores, medidores eletrônicos, calculadoras básicas e outros dispositivos eletrônicos capazes de exibir informações numéricas. A Figura 1 representa um exemplo de um LED de 7 segmentos dis
Driver LED Step-Down 3A baseado em ATTiny84: 7 etapas (com imagens)
Driver de LED Step-Down 3A baseado em ATTiny84: Se você deseja alimentar LEDs de 10 W, pode usar este driver de LED 3A. Com 3 LEDs Cree XPL, você pode atingir 3000 lumens
PWM com ESP32 - Dimerização do LED com PWM no ESP 32 com Arduino IDE: 6 etapas
PWM com ESP32 | Dimming LED com PWM no ESP 32 com Arduino IDE: Nestes instructables veremos como gerar sinais PWM com ESP32 usando Arduino IDE & PWM é basicamente usado para gerar saída analógica de qualquer MCU e essa saída analógica pode ser qualquer coisa entre 0V a 3,3V (no caso de esp32) & a partir de
Driver do motor DC usando Power Mosfets [PWM Controlado, 30A Half Bridge]: 10 etapas
Driver do Motor DC usando Power Mosfets [PWM Controlled, 30A Half Bridge]: Fonte Principal (Baixe Gerber / Solicite o PCB): http://bit.ly/2LRBYXH