Fiação de LEDs RGB

13

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 0até 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 TLC5940driver 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 VPRGme 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 . TLC5940

insira a descrição da imagem 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? insira a descrição da imagem aqui

persistência
fonte
Ooohhh o pi da abóbora =: 0
Piotr Kula
Você esclareceria algumas coisas? Deseja conduzir todos os LEDs vermelhos, verdes e azuis de 8 LEDs RGB (que receberão 24 saídas, 8 a mais do que os 16 fornecidos por um TLC5940). Quais LEDs RGB você está usando? Precisamos saber se eles são ânodo comum ou cátodo comum (sua fiação parece um cátodo comum, que não funcionará com um TLC5940, que só pode diminuir a corrente. O cátodo comum precisará de um chip diferente). Além disso, o azul pode não ligar usando 3.3V, por isso precisará de 5V. Deve ser através da eletrônica do furo (por exemplo, DIP), e não da montagem na superfície. Você se importa se ele usa 3 chips em vez de um?
gbulmer
@ bulbul Desculpe por isso. Não tenho o pacote em que os LEDs chegaram, mas acho que você está correto no Common Cathode quanto a acendê-los no arduino que escrevi HIGH. Vou pegar um pouco de ânodo comum no radioshack hoje à noite. Eu tenho 5 chips TLC5940 e não me importo se eu usá-los todos. A razão pela qual eu vou com o DIP é usar uma tábua de pão (pequenos passos). Depois de colocá-lo funcionando, mudarei para montagem em superfície.
Atrueresistance

Respostas:

4

Vejo duas coisas que devem ser abordadas nesta pergunta:

  1. Como conectar e se comunicar com o TLC5940

  2. 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-bcm2708a partir /etc/modprobe.d/raspi-blacklist.conf, carregá-lo e i2c-deve você deve obter /dev/i2c-0e /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?

opello
fonte
6

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

insira a descrição da imagem aqui

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.

emcconville
fonte
1
Não há apenas uma saída PWM?
Alex Chamberlain
Boa pergunta. O eLinux afirma que todos os pinos do GPIO podem ser reconfigurados para o PWM; no entanto, as Funções gerais de fiação afirmam que apenas o GPIO-1 (pino 18) suporta PWM. Seção 6.2 Atribuições de funções alternativas do BCM2835 listam todos os pinos do PWM; dos quais, apenas um está presente no GPIO do pi.
emcconville
O artigo eLinux está mal escrito; é um pouco melhor abaixo.
Alex Chamberlain
1
Os pinos GPIO realmente não pode fonte ou dreno de corrente suficiente para conduzir LEDs diretamente
John La Rooy
1

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.

I OUT = 3,96 * R IREF
LEDs regulares geralmente são 20mA, de modo que a fórmula fornece 2k para o resistor

John La Rooy
fonte
0

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.

jfenwick
fonte