Controllo di molti LED con pochi pin GPIO


12

Ho completato con successo il mio hardware "ciao mondo" usando questa guida:

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

Ora vorrei passare a cose più grandi e luminose, LED più controllati individualmente! Ovviamente, il prossimo passo è spostare la fonte di tensione al di fuori del Raspberry Pi e aggiungere altri LED, ma alla fine finirò i pin GPIO, quindi immagino che ciò di cui ho bisogno ora sia controllare un circuito che in qualche modo saprà , basato su "segnali codificati" GPIO, quali LED accendere e spegnere. Che tipo di esempi di circuito dovrei cercare? E, soprattutto, di fronte al Raspberry Pi, potrebbe o rpi.gpio causare problemi, forse per quanto riguarda il timing del segnale?


Il muliplexing ridurrà radicalmente il numero di GPIO che devono essere utilizzati, in combinazione con Persitance of Vision, utilizzando PWM per ridurre ulteriormente GPIO o creare array di grandi dimensioni con GPIO minimo. È già stata data una risposta qui.
Piotr Kula,

Risposte:


13

Quello che stai cercando in quel caso è una matrice LED . È possibile controllare questa matrice dai pin GPIO, ma ciò limita comunque la quantità di LED che è possibile collegare (la dimensione della matrice) e potrebbe anche iniziare ad assorbire troppa corrente se non si sta attenti.

Un'opzione migliore è quella di collegare una matrice LED al bus I2C, utilizzando uno o più estensori I / O I2C. In questo modo è possibile creare una matrice di dimensioni enormi (ad esempio 64 LED possono essere eseguiti con un dispositivo di estensione I / O a 16 bit). Un altro motivo per utilizzare questi extender I / O è che sono un po 'più robusti, possono fornire un po' più di corrente e mantenere la CPU principale fuori dai guai.

Su questo sito questi estensori I / O sono discussi più volte, quindi dovresti essere in grado di trovare informazioni su questi abbastanza facili. Questo link fornisce alcune informazioni su questi extender e una matrice (sebbene utilizzata per l'input, ma sostanzialmente è la stessa idea ma non usi la matrice per scansionare ma per guidare i LED)

L'unico requisito aggiuntivo per realizzare una matrice di lavoro regolare è che devi rendere la matrice non più grande, quindi l'RPi è in grado di aggiornare ogni singolo LED almeno 20 volte al secondo, altrimenti inizierai a vedere lo sfarfallio, ma questo è anche spiegato nel primo link (paragrafo "Multiplazione e persistenza della visione").


Questo è molto interessante. Grazie per la lettura! Potrei provarlo su piccola scala usando i pin GPIO prima di essere pronto a passare agli extender. Ho fatto alcuni test con i pin GPIO e finora sono stato in grado di ottenere un multiplexing soddisfacente. Non sono preoccupato per la corrente poiché userò il Pi solo per cambiare una corrente esterna. Questa scala andrà bene? Probabilmente no, ma sono comunque qui principalmente per la lezione!
SkyNT

3

Ho usato l' espansore di porte I²C MCP23017 per fare questo tipo di cose. Segui questo link per trovare un codice di esempio per il raspberry pi. È possibile pilotare 16 LED per chip e 8 chip senza la necessità di eseguire il multiplexing.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.