Semáforo em miniatura com Raspberry Pi: conectando muitos LEDs


8

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?


1
b = teto (ln (N) / ln (2)) em que N é o número de LEDs a serem controlados eb é o número de bits necessários para implementar o controle. Assim, uma unidade de semáforo, na qual apenas 1 em cada 3 LEDs está ativo por vez, exigiria 2 bits de E / S para controle. Com E / S de 8 bits, você pode controlar 32 unidades de semáforo: 2 bits para dados (que 1 em 3 acendem), 5 bits para endereço (a qual 1 em 32 ou 2 ^ 5 unidades você se refere), e 1 bit para travamento. Espero que alguém possa expandir isso para uma resposta completa.
shimofuri

A resposta abaixo é boa e o que eu sugeriria, mas como algo simples, não foi possível encontrar um bom circuito de referência. Você também pode usar um pequeno microcontrolador de US $ 1 de 8 pinos e rolar seu próprio barramento serial para dispositivos praticamente ilimitados, embora isso seja um pouco um projeto em si, se você nunca os tiver usado antes.
precisa

A busca por "[multiplexação] [led]" encontrará perguntas com ambas as tags. Você pode encontrar algumas informações úteis lá.
Phil Geada

OP podem desfrutar deste semáforo de Velleman
Chetan Bhargava

Respostas:


11

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.


4

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?


1
Costumo me esquivar de empurrar correntes de pico muito altas na ausência de circuidade, o que pode impedir que uma linha seja deixada por muito tempo. É quase garantido que qualquer unidade de linha baseada em software falhe ocasionalmente, e um circuito bem projetado deve ser imune a danos decorrentes dessa ocorrência.
Supercat 13/12

-1

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


2
Esperamos que as respostas aqui se sustentem amplamente. Os links apodrecem ao longo do tempo e não devem ser invocados para as informações principais. Declare sua resposta em um ou dois parágrafos e use links para se referir a informações adicionais.
Olin Lathrop

Justo! A placa em questão a que me referi da Robot Electronics é um driver de relé controlado por USB ou Ethernet. Ele vem com um conjunto de comandos simples para ativar ou desativar cada um dos 8 ou 16 relés na placa. Estes relés podem ser facilmente usado para alternar a pilha de LED de seus semáforos e permitir o controle via porta USB ou Ethernet do Raspberry Pi
Gareth

@ Gareth Então, coloque essas informações na resposta que não está aqui.
21313 Butzke
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.