Sterowanie wieloma diodami LED za pomocą kilku pinów GPIO

12

Udało mi się ukończyć sprzętowy „witaj świecie”, korzystając z tego przewodnika:

http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/

Teraz chciałbym przejść do większych i jaśniejszych rzeczy, czyli bardziej indywidualnie kontrolowanych diod LED! Oczywiście następnym krokiem jest odsunięcie źródła napięcia od Raspberry Pi i dodanie większej ilości diod LED, ale w końcu skończą mi się piny GPIO, więc chyba potrzebuję teraz kontrolować obwód, który w jakiś sposób będzie wiedział , na podstawie „zakodowanych sygnałów” GPIO, jakie diody LED należy włączać i wyłączać. Jakich przykładów obwodów powinienem szukać? A co ważniejsze w stosunku do Raspberry Pi, czy może on lub rpi.gpio powodować jakiekolwiek problemy, być może dotyczące synchronizacji sygnału?

SkyNT
źródło
Mulipleksowanie radykalnie zmniejszy liczbę GPIO, które należy zastosować, w połączeniu z Persitance of Vision, wykorzystując PWM do dalszej redukcji GPIO lub tworzenia dużych tablic przy minimalnym GPIO. Na to pytanie już tutaj udzielono odpowiedzi.
Piotr Kula,

Odpowiedzi:

13

W tym przypadku szukasz matrycy LED . Możesz kontrolować tę matrycę za pomocą pinów GPIO, ale nadal ogranicza to liczbę diod LED, które możesz podłączyć (rozmiar matrycy), a może również zacząć pobierać zbyt dużo prądu, jeśli nie będziesz ostrożny.

Lepszą opcją jest podłączenie matrycy LED do szyny I2C przy użyciu jednego lub wielu przedłużaczy I2C I2C. W ten sposób możesz stworzyć matrycę o ogromnych rozmiarach (na przykład 64 diody LED można wykonać z JEDNYM 16-bitowym przedłużaczem I / O). Innym powodem korzystania z tych wzmacniaczy wejścia / wyjścia jest to, że są one trochę bardziej niezawodne, mogą zapewnić nieco więcej prądu i nie narażać głównego procesora na niebezpieczeństwo.

Na tej stronie omawiane są wielokrotnie ekstendery we / wy, więc informacje na ich temat powinny być dość łatwe. Ten link zawiera informacje o tych przedłużaczach i matrycy (chociaż jest używany do wprowadzania danych, ale w zasadzie jest to ten sam pomysł, ale nie używasz matrycy do skanowania, ale do sterowania diodami LED)

Jedynym dodatkowym wymogiem do stworzenia sprawnie działającej matrycy jest to, że musisz uczynić matrycę nie większą, niż RPi jest w stanie aktualizować każdą pojedynczą diodę LED co najmniej 20 razy na sekundę, w przeciwnym razie zaczniesz widzieć migotanie, ale jest to również wyjaśnione w pierwszym łączu (akapit „Multipleksowanie i trwałość widzenia”).

ikku
źródło
To jest bardzo ciekawe. Dzięki za przeczytanie! Mógłbym spróbować tego na małą skalę, używając pinów GPIO, zanim będę gotowy do przejścia na przedłużacze. Zrobiłem kilka testów z pinami GPIO i do tej pory udało mi się uzyskać zadowalające multipleksowanie. Nie martwię się o prąd, ponieważ będę używał Pi tylko do przełączania zewnętrznego prądu. Czy to dobrze się skaluje? Prawdopodobnie nie, ale i tak jestem tu głównie na lekcji!
SkyNT
3

Użyłem MCP23017 portu ekspandera I²C robić tego typu rzeczy. Kliknij ten link, aby znaleźć przykładowy kod dla Raspberry Pi. Możesz napędzać 16 diod LED na chip i 8 chipów bez konieczności multipleksowania.

John La Rooy
źródło