Quero usar uma placa Arduino comum para controlar os LEDs - qual é a maior quantidade de luzes que posso controlar individualmente da placa?
Existe um tutorial sobre como conectá-lo?
Quero usar uma placa Arduino comum para controlar os LEDs - qual é a maior quantidade de luzes que posso controlar individualmente da placa?
Existe um tutorial sobre como conectá-lo?
Respostas:
Acredito que o uso de linhas N charmosas controla os LEDs N * (N-1). Há um bom artigo na Wikipedia.
Um amigo meu, Jimmie P. Rodgers, colocou 126 LEDs em um Arduino Shield. Ele usa charlie-plexing para controlar os LEDs. Algumas informações em seu quadro estão em - jimmieprodgers.com/2009/12/my-development-process/ (archive.org copy)
Na última reunião do Grupo de Usuários do Arduino de Boston, Jimmie P. Rodgers desenhou um diagrama plexo de Charlie como uma matriz com redes rotuladas. Esquemas desenhados dessa maneira pareciam fazer um bom trabalho de comunicação do conceito. Criei alguns esquemas semelhantes - Consulte http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html
jimmieprodgers.com
link nesta resposta está carregado com vírus.
Você pode usar Shift Registers ( http://en.wikipedia.org/wiki/Shift_register ) para obter quantas saídas paralelas de um único fluxo serial você desejar.
Você precisará se preocupar com suas restrições de poder. Na verdade, eu nunca usei um Arduino, mas estou assumindo que ele tem um limite de corrente, assim como os PICs. Além disso, os registros de turnos também terão um limite de corrente. Se você se deparar com isso, precisará usar algo como um MOSFET para permitir que você controle os LEDs sem precisar extrair muita energia diretamente do seu micro controlador.
É permitido que qualquer pino do microcontrolador AVR possa fornecer até 40 mA, e a fonte de alimentação total originada ou afundada pelo chip (ou seja, no solo e nos pinos Vcc) precisa estar abaixo de 200 mA.
O Charlieplexing é uma ótima solução para situações em que você precisa de muitos LEDs, mas pode sobreviver com apenas um LED aceso por vez. Uma placa Arduino padrão (como uma Duemilanove) fornece 17 pinos de E / S "gratuitos", sem contar TX, RX, Reset ou pino 13. Portanto, você pode conectar 17 * 16 = 272 LEDs. Isso pode funcionar bem, especialmente se você estiver mantendo um LED aceso ou digitalizando rapidamente entre apenas alguns. Mas se você estiver tentando iluminar toda a matriz com um padrão, verá que cada uma delas está ligada (um pouco menos que) 1/272 do tempo, portanto, se a corrente de sua unidade fosse de 30 mA em um dado momento, cada LED a corrente média seria de cerca de 0,1 mA - bastante fraca.
Se você não precisa de muitos LEDs, mas precisa de mais brilho, a multiplexação tradicional pode ser uma opção melhor. Nesse caso, você usa algumas de suas linhas como linhas e outras como colunas em uma matriz. Se você usar uma corrente de LED de 10 mA, poderá definir uma matriz de 4 colunas e 13 linhas, onde todos os 4 LEDs em uma linha podem estar acesos por vez, e você varrerá as linhas. Em seguida, cada linha fica em 1/13 do tempo na corrente de 10 mA, de modo que a corrente média do LED pode chegar a 0,76 mA, mas você obtém apenas 4 * 13 = 104 LEDs. (Definitivamente mais brilhante por LED do que com charlieplexing.)
O limite no último exemplo é de 40 mA por pino no AVR, uma vez que cada pino de acionamento gera 4x10 = 40 mA. Se você permitir que transistores externos (que podem ser baratos e pequenos) sejam adicionados às saídas de linha, poderá evitar esse limite específico e ficar mais claro. Por exemplo, você pode criar uma matriz 8x9, com 8 linhas e 9 colunas, 72 LEDs no total. Uma das 8 linhas está ligada por vez, selecionada através do transistor. Até todos os 9 LEDs em uma determinada linha podem estar acesos por vez, acionados a 20 mA, de modo que 180 mA vem do transistor e você permanece abaixo dos limites de corrente do AVR. A corrente média por LED agora é de 20 mA / 8 = 2,5 mA - geralmente razoavelmente brilhante.
Há um tutorial detalhado e muito bom aqui, que inclui uma seção sobre o uso de um Arduino para executar um cubo de LED 8x8x8. (Não perca o filme do YouTube que eles exibem)
Existem muitos expansores de E / S por aí que usam barramentos SPI ou I2C. Com um único módulo MSSP, você pode controlar quase uma quantidade infinita de saídas digitais, como LEDs.
Consulte as folhas de dados do Microchip ou as notas de aplicação para as seguintes partes:
SPI - MCP23S08
I2C - MCP23008
Com 17 pinos de E / S, dezessete transistores NPN (seguidores de emissor para aumentar a corrente) não deve haver nenhum problema em particular mostrando 272 LEDs em combinações arbitrárias no ciclo de trabalho 1/17, com corrente média ou 0,7mA (200mA / 272), limitada por a capacidade do chip de diminuir 200mA por vez. A adição de um diodo para obter uma queda de 0,7 volts permitirá a adição de outros 17 LEDs (reduzindo o ciclo de trabalho para 1/18), embora o brilho não corresponda exatamente aos outros.
Enquanto Windell Oskay argumenta que 104 LEDs é o máximo sem adicionar mais transistores, Tom Igoe postou fotos de uma matriz de 128 LEDs controlados diretamente por um único Arduino Mega - sem transistores extras, discretos ou integrados.
Tom Igoe está "trapaceando" ao exceder brevemente a "corrente máxima absoluta por pino" listada na folha de dados?