Eu gostaria de poder controlar cerca de 100 LEDs independentes usando um Arduino. O problema é que o Arduino não possui pinos suficientes o suficiente para isso. Qual seria uma maneira de resolver esse problema? Existe um chip que pode desmembrar um sinal mais complexo do Arduino que pode controlar os LEDs? Ou há outra solução?
arduino
digital-logic
gpio
Alexis K
fonte
fonte
Respostas:
Primeiro, um Arduino não pode acionar diretamente 100 LEDs, pois a corrente combinada que o dispositivo deve fornecer ou afundar excederá em muito o microcontrolador e o regulador de tensão na placa Arduino. Um Arduino Shield personalizado, com sua própria fonte de energia e regulamentação, pode ser adequado.
Existem várias abordagens fáceis, a abordagem mais simples é detalhada abaixo:
Driver de LED de corrente constante TLC5940 em configuração em cascata:
O TLC5940 aciona 16 LEDs por IC, controlados por entrada serial através de uma ligeira variante de uma interface SPI. Até 40 dispositivos TLC5940 podem ser conectados em cascata, mas 7 deles serão suficientes para acionar os 100 LEDs na questão.
Existem pelo menos algumas bibliotecas do Arduino ( 1 , 2 ) para o TLC5940.
Taxas de relógio sugeridas para envio do Arduino e taxa de atualização correspondente:
Isso é baseado nas fórmulas da folha de dados:
O TLC5940 é um coletor de corrente constante ; portanto, os ânodos dos LEDs são ligados a uma voltagem dois volts maior que o LED Vf, ou cerca de 7 volts, o que for menor, alimentado independentemente dos pinos de energia do Arduino. Essa fonte de voltagem precisa ser capaz de fornecer 100 * (qualquer que seja a corrente em que os LEDs sejam executados), mas pode ser uma fonte não regulamentada.
Os cátodos de LED vão para as linhas de acionamento dos respectivos CIs TLC5940.
O próprio TLC5940 consome até Icc = 60 mA por dispositivo durante a gravação de dados, portanto, ligar 7 deles do Arduino não funcionará, será necessário fornecer um Vcc regulado de 3,3 a 5 volts independente, idealmente o mesmo valor que o Vcc do Arduino sendo usado, e os rastreamentos de terra precisam se conectar de volta ao solo do Arduino, é claro. Operar as peças do TLC em uma voltagem diferente da do Arduino traria a necessidade de conversão de nível do sinal serial, portanto, é melhor evitar.
Vários vídeos do YouTube demonstram o uso do Arduino com ICs TLC5940 em cascata.
Drivers para o display de LED de 8 dígitos MAX7219 (serial) / MAX7221 (SPI) :
Embora esses CIs tenham sido projetados para acionar displays LED numéricos de 7 segmentos, eles fornecem controle individual de LEDs, portanto, podem ser usados para até 64 LEDs por IC. Dois deles podem ser conectados em cascata para acionar os 100 LEDs necessários. A página 13 da folha de dados mostra uma configuração em cascata.
Os LEDs precisariam ser conectados eletricamente como grupos de até 8 LEDs, cada um compartilhando uma linha de cátodo (cátodo comum), para esse projeto.
O MAX7219 / 7221 são drivers de LED multiplexadores; portanto, o brilho máximo dos LEDs será menor do que para um driver de LED estático, como na seção anterior.
Aqui está uma biblioteca e guia útil de matrizes de LED usando o MAX7219.
Alguns vídeos relevantes do YouTube ( 1 , 2 ) podem ser interessantes.
Charlieplexing: drivers SPI LED, MAX6950 / MAX6951
Novamente, esses ICs foram projetados para acionar displays LED numéricos de 7 segmentos; eles fornecem controle individual de LEDs; portanto, podem ser usados para até 40/64 LEDs por IC. Dois / três deles podem ser conectados a um barramento Arduino SPI para acionar os 100 LEDs necessários.
As notas de design permanecem as mesmas da seção anterior. Além disso, o brilho máximo individual do LED seria menor do que no design multiplex direto do MAX7219.
Existem alguns vídeos do YouTube que podem ser interessantes.
Projetos de componentes discretos, registros de turnos, expansores de E / S, tiras de LED cortáveis com controladores individuais e muito mais ...
Essas são todas as abordagens que foram usadas com diferentes níveis de simplicidade e sucesso. São implementações mais complexas do que as três abordagens acima, portanto, não são mais detalhadas. A pesquisa na web produziria guias úteis para essas abordagens, se necessário.
Um dos principais fatores irritantes desses projetos é a necessidade de resistores de controle de corrente em cada LED ou string de LEDs. Os dispositivos projetados especificamente para a condução por LED normalmente não precisam disso.
Não tenho experiência pessoal com este último conjunto de opções, portanto não posso ajudar muito.
Nota de rodapé: Depois de responder a esta pergunta, encontrei uma pergunta mais antiga , com respostas que detalham e discutem várias das abordagens na minha última seção. Essa discussão torna interessante "leitura adicional como lição de casa".
fonte