Concluí com sucesso o meu "olá mundo" do meu hardware usando este guia:
http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/
Agora eu gostaria de passar para coisas maiores e mais brilhantes, LEDs mais controlados individualmente! Obviamente, o próximo passo é remover a fonte de tensão do Raspberry Pi e adicionar mais LEDs, mas eventualmente vou ficar sem pinos GPIO, então acho que o que preciso agora é controlar um circuito que de alguma forma saberá , com base nos "sinais codificados" do GPIO, quais LEDs devem ser ligados e desligados. Que tipo de exemplos de circuitos devo procurar? E o mais importante em relação ao Raspberry Pi, ele ou rpi.gpio poderia causar problemas, talvez com relação à sincronização do sinal?
Respostas:
O que você está procurando nesse caso é uma matriz de LED . Você pode controlar essa matriz a partir dos pinos GPIO, mas isso ainda limita a quantidade de LEDs que você pode conectar (o tamanho da matriz) e também pode começar a consumir muita corrente se você não tomar cuidado.
Uma opção melhor é conectar uma matriz de LED ao barramento I2C, usando um ou vários extensores de E / S I2C. Dessa forma, você pode criar uma matriz de tamanho enorme (64 LEDs, por exemplo, podem ser feitos com o extensor de E / S de 16 bits do ONE). Outro motivo para usar esses extensores de E / S é que eles são um pouco mais robustos, podem fornecer um pouco mais de corrente e manter sua CPU principal fora de perigo.
Neste site, esses extensores de E / S são discutidos várias vezes, portanto, você poderá encontrar informações sobre eles com bastante facilidade. Este link fornece algumas informações sobre esses extensores e uma matriz (embora usado para entrada, mas basicamente é a mesma idéia, mas você não usa a matriz para digitalizar, mas para orientar os LEDs)
O único requisito extra para criar uma matriz de trabalho suave é que você precisa aumentar a matriz, pois o RPi pode atualizar cada LED individual pelo menos 20 vezes a cada segundo; caso contrário, você começará a ver tremulações, mas isso também é explicado no primeiro link (parágrafo "Multiplexação e persistência da visão").
fonte
Usei o expansor de portas MCP23017 I²C para fazer esse tipo de coisa. Siga este link para encontrar um código de exemplo para o raspberry pi. Você pode controlar 16 LEDS por chip e 8 chips sem precisar fazer multiplexação.
fonte