Fundo:
Sou engenheiro civil especializado em dispositivos de controle de tráfego e tenho um pequeno projeto de hobby para construir um sistema de semáforos em escala reduzida. Posso gerenciar e controlar a programação do padrão de semáforo usando um Raspberry Pi (além disso, me permite implementar o controle dinâmico e programado e fazer interface com um esquema sério de controle de tráfego e possivelmente com dados reais de tráfego). Eu só preciso de ajuda para conectar muitos LEDs no lado do hardware :)
Eu segui este tutorial http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/ muito bem (incluindo o uso de uma fonte de energia externa em vez do pino 2), mas Provavelmente, vou encontrar o problema de poucas conexões GPIO para todos os semáforos.
Em seguida, tentei multiplexar com um LED Matrix http://www.appelsiini.net/2011/how-does-led-matrix-work . A multiplexação funciona, no entanto, as luzes geralmente são mais escuras, duvido que a escala seja boa, e isso tende a aumentar a complexidade do controle.
Questão central:
Com exceção de obter uma placa de expansão no Raspberry Pi, existem outros truques que eu poderia usar para controlar vários LEDs com menos sinais 0/1?
Uma coisa sobre os semáforos é que eles geralmente vêm em blocos de três, apenas um dos quais está ativo por vez. Existe algum circuito relativamente simples por aí que me permita 'alternar' um bloco de LEDs usando um único sinal 0/1?
fonte
Respostas:
Você está familiarizado com registros de turno como 74HC595? Requer 3 pinos do seu RPI e você pode controlar 8 linhas de saída. Você pode facilmente colocá-los em cascata, controlando efetivamente n × 8 linhas de saída.
Os dados são marcados em série no registrador de deslocamento e, uma vez transferidos todos os 8 bits de saída, você os trava nas saídas.
Eu estava prestes a adicionar a folha de dados aqui, mas https://www.sparkfun.com/products/733 mostra um bom vídeo e também possui um link para a folha de dados.
fonte
Registros de turno como jippie sugere que funcione bem. Porém, a multiplexação também pode funcionar para mais LEDs do que você poderia esperar. A solução para o brilho reduzido é aumentar a corrente de pico para que a corrente média permaneça a mesma. Você pode fazer isso aumentando a tensão ou reduzindo o resistor limitador de corrente.
A razão pela qual a corrente excessiva danifica um LED é que a junção superaquece. Se houver tempo para esfriar entre os pulsos, eles podem ser mais fortes. A folha de dados do seu LED deve especificar uma corrente média máxima e uma corrente máxima de pico que não devem ser excedidas. Se você não está muito preocupado com a alta confiabilidade (um projeto de hobby, não uma nave espacial) e não se importa de fumar alguns LEDs ou adotar um pouco as regras, sempre pode testar os limites sozinho.
Além disso, procure na charlieplexing uma maneira de multiplexar mais LEDs a partir de um número menor de pinos. O limite superior de quantos LEDs podem ser conectados com esse método geralmente é o brilho alcançável com a corrente disponível nos pinos do GPIO, não o número de pinos.
Leitura adicional: pulsar um LED com corrente mais alta produz brilho aparente?
fonte
Use USB ou Ethernet para controlar as luzes através de uma placa de relé de travamento como esta
http://www.robot-electronics.co.uk/acatalog/Relay_Modules.html
Eu usei essas placas para outras aplicações e elas são excelentes
fonte