Eu queria saber se é possível conectar 8 LEDs RGB individuais, como a tira adafruit . Eu vi o projeto Pumpkin Pi e gostaria de criar um. Não tenho LEDs amarelos ou vermelhos, mas tenho um pequeno estoque de RGBs.
Eu sei que no arduino eu usaria resistores de 270ohm para cátodos RGB e controlaria cada brilho em uma escala de 0
até 255
.
Existe uma maneira de fazer isso no Raspberry Pi?
Atualizar
Então, eu estive analisando isso um pouco mais. Tomei a sua idéia de usar o TLC5940
driver de LED.
Então agora estou pedindo ajuda novamente. Eu imaginei uma pergunta longa que, eventualmente, resolve isso, é melhor do que um monte espalhado pela pilha de troca. Agora vem a parte da fiação. Eu estou usando um tutorial de fiação do arduino como um começo, já que estou passando por cima da cabeça. Também estou me referindo à folha de dados . De acordo com o diagrama, o pino 27 or VPRG
me confunde. O diagrama do Arduino o fundamentou, então eu estou aterrando. . . Como faço para conectar isso corretamente ao pi? Também acho que também preciso de resistores ...
Sinto muito se isso parece realmente estúpido, mas sou um verdadeiro iniciante nessas coisas. Você precisa aprender a engatinhar antes de poder andar.
O que preciso fazer para corrigir esse diagrama de fiação ( fritzing )?
O arquivo fzz fiação pode ser baixado do google aqui .
Atualização 2 - após o comentário
Levando em conta algumas das respostas e comentários, esse seria o diagrama de fiação? 330ohm para ânodo. 2k ohm para fixar 20
. Como as entradas passam do pi para o chip?
Respostas:
Vejo duas coisas que devem ser abordadas nesta pergunta:
Como conectar e se comunicar com o TLC5940
Como conectar LEDs até o TLC5940 .
Para a primeira parte, você precisará conectá-lo aos pinos i2c do cabeçalho P1 do Raspberry Pi (que são os pinos 3 (dados) e 5 (relógio)). Você pode usar o pino 1 (3,3 V) para o VCC do TLC5940 . Ele recomenda de 3 V a 5,5 V para entrada de acordo com a folha de dados. Você também deseja conectar um pino de aterramento de P1 (por exemplo, pino 5) ao GND do TLC5940 . E você precisará de um GPIO adicional (por exemplo, pino 7) para conectar ao sinal XLAT do TLC5940 para bloquear o valor do registrador de deslocamento.
Então você precisa configurar o Pi para comunicação i2c: assumindo raspbian, remova
i2c-bcm2708
a partir/etc/modprobe.d/raspi-blacklist.conf
, carregá-lo ei2c-dev
e você deve obter/dev/i2c-0
e/dev/i2c-1
(i2c-1
é o que você vai precisar usar para o modelo B Rev. 2 Pis).Finalmente, você precisará usar uma transação i2c para definir o valor do registro de deslocamento interno e depois sinalizar o XLAT (se estiver usando o pino 7, é o GPIO 4).
Eu também negligenciei o pino GSCLK. Você precisará fornecer uma entrada de relógio para que o contador interno realmente aumente, o que pode ser feito a partir de outra linha GPIO se estiver configurada corretamente. Também não acho que o trilho de 3,3 V forneça corrente suficiente para esta aplicação ( 50 mA no máximo ). Se você mudar para o trilho de 5 V, poderá extrair até ~ 300 mA , mas deverá usar a lógica de 5 V para o i2c (e o GSCLK), exigindo mais componentes.
Para a segunda parte, parecia que você lidou com algum projeto anterior do Arduino, a menos que eu tenha lido errado?
fonte
Sim. Você usaria os pinos GPIO no modo PWM para controlar cada escala de brilho. Um exemplo da fiação de fiação.org.co . O utilitário GPIO e os guias do Projeto Gordons são outro lugar para começar
Editar
Como Alex Chamberlain apontou, apenas um pino GPIO suporta PWM. Você pode usar o software para obter PWM em outros pinos GPIO. Informações e exemplos para o C & Python .
Isso pode ser um exagero, pois o projeto Pumpkin Pi requer apenas luz laranja. Se você possui um estoque de RGBs e tempo para experimentar, pode iluminar uma única cor de LED no RGB e misturá-las com outras para gerar cores terciárias. Uma proporção de 2 partes de vermelho para 1 parte de verde aparecerá em laranja. Alternar metade dos LEDs vermelhos criará a ilusão de laranja piscando para amarelo. Mas isso é uma teoria das cores ; qual, eu não tentei.
fonte
Algo como um TLC5940 é uma boa maneira de acionar vários LEDS PWM'd
Verifique também o TCA6507 no appnote "Programming fun lights" , embora ele não esteja disponível no DIP
Edit: Não há problema em manter o pino VPRG no TLC5940 conectado ao terra. Isso significa simplesmente que você não pode usar a "correção de pontos" para compensar as variações nos seus LEDs. Se você possui vários LEDs e deseja passar para o próximo nível de complexidade, pode usar a correção de pontos para acendê-los uniformemente.
O resistor de 2k no pino 20 é necessário para definir a corrente de saída.
LEDs regulares geralmente são 20mA, de modo que a fórmula fornece 2k para o resistorfonte
Este é um artigo realmente útil que alguém fez sobre como usar o TLC5940 com um AVR: https://sites.google.com/site/artcfox/demystifying-the-tlc5940
É muito útil para aprender sobre o processo de aprender a escrever código que funciona com o TLC5940.
A primeira versão do código de exemplo é bastante geral. Estou trabalhando na conversão de todas as instruções #define e funções de baixo nível em algo que funcione no Raspberry Pi.
fonte