domingo, 7 de julho de 2013

TLC5940 + Arduino: Controlando16 LEDs separadamente (independentes)

Utilizando um TLC5940 você pode controlar 16 leds utilizando apenas 5 saídas digitais do Arduino. Ainda é possivel ligar mais TLCs em série, multiplicando o número de saídas para cada IC adicionado.

O exemplo executado no vídeo e descrito com o código fonte abaixo é o "BasicUse" incluído com a library (disponível em https://code.google.com/p/tlc5940arduino/).

Material utilizado:




Faça o download da library do TLC5490 (em: https://code.google.com/p/tlc5940arduino/) e instale utilizando a IDE do Arduino.
Reinicie o programa e verá que já estarão disponíveis outros exemplos clicando em File / Examples / Tlc5490.
A ligação do TLC ao arduino deve ser feita de acordo com as instruções incluídas, mas para facilitar eu fiz esta imagem (utilizando o programa Frizing: http://fritzing.org/download/)

clique na imagem abaixo para ter uma visão das ligações:

O código fonte do exemplo BasicUse tem bastante comentários (em inglês), mas eu criei mais alguns em português para facilitar o entendimento das ações executadas em cada passo. As linhas acabaram ficando um pouco longas para serem mostradas na pequena janela de texto abaixo, mas se você colar na janela do IDE do Arduino e maximizar, poderá ler confortavelmente todos os comentários.
O comando principal desta biblioteca é o "Tlc.set(channel (0-15), value (0-4095))" onde channel é o número do pino para qual você está enviando o comando (de 0 a 15 se for apenas um TLC), e value é o valor enviado à aquele pino. No cado dos LEDs, um valor de 0 seria totalmente apagado e 4095 é aceso com o brilho máximo.
Note que valores intermediários entre 0 e 4095 fazem a dimerização (fade) do led, portanto não é necessário (nem permitido) a utilização de analogWrite() para fazer PWM destes pinos.

Creio que o código está bem comentado, qualquer dúvida utilize os comentários do blog!

 código fonte: copie e cole no IDE do Arduino!


Um comentário: