Indice |
Cos'è il Charlieplexing?
Il Charlieplexing è una tecnica proposta all'inizio del 1995 da Charlie Allen, impiegato presso la
Maxim Integrated Products per pilotare molti led con poche linee di I/O di un microcontrollore.
A differenza del multiplexing tradizionale, questo metodo sfrutta la logica tri-state dei buffer di I/O del microcontrollore per pilotare i led con meno linee di I/O.
Gli svantaggi di questa tecnica sono sostanzialmente tre:
- la maggior complessità della board
- il maggior lavoro necessario da parte del microcontrollore
- la luminosità dei led che diminuisce per effetto del duty cicle
Pilotare 20 led con il multiplexing tradizionale
Supponiamo di voler pilotare 20 led con un microcontrollore.
Possiamo pilotare singolarmente ogni led, ed in questo caso abbiamo bisogno di 20 linee di I/O, un vero spreco, oltretutto buona parte dei processori nemmeno le possiede!
Una soluzione più efficiente consiste nell'utilizzare un multiplexing tradizionale come quello mostrato nello schema qui sotto:
Per accendere uno dei led da D6 a D10 devo mettere uno stato logico alto su A1 e basso sui restanti A0, A2, A3.
Poi accendo il led voluto mettendo bassa la linea Bx corrispondente e alte tutte le altre.
In questo modo abbiamo bisogno comunque di 9 linee di I/O, ancora troppe!
Se ci limitiamo al solo stato HIGH-LOW degli I/O non possiamo fare di più.
Pilotare 20 led con il Charlieplexing
La tecnica del Charlieplexing sfrutta al contrario tutti gli stati possibili di un I/O:
- livello logico alto
- livello logico basso
- alta impedenza
Con il Charlieplexing il numero di led che è possibile pilotare è legato al numero di linee utilizzate dalla seguente formula:
in cui n è il numero di linee utilizzate.
Per pilotare i 20 led quindi bastano soltanto 5 linee di I/O.
Lo schema per collegare i led è il seguente:
Per accendere un led, come nel caso del multiplexing tradizionale, si deve alimentare il led nel giusto verso.
Supponiamo di voler accendere il led D9, dobbiamo quindi mettere uno stato logico alto su A0, uno stato logico basso su A2 e porre in alta impedenza tutti gli altri I/O in modo da lasciare flottanti tutti i led ad eccezione di D1, D2, D5, D6, D9 e D10.
Dato che il led conduce in una sola direzione, l'unico ad essere acceso è D9.
I led D1 e D2, nonostante siano polarizzati direttamente, non si accendono perché la tensione minima da applicare alla serie D1-D2 è doppia rispetto a quella del singolo led imposta da D9.
Limiti del Charlieplexing
Teoricamente si può pensare di espandere il metodo ad un numero infinito di led, ma questo non è possibile per la combinazione di 2 ragioni:
- La frequenza finita del microcontrollore
- La massima corrente accettata dal led
Con questo metodo è possibile accendere un solo led per volta, a parte il caso in cui i led non fanno capo agli stessi I/O.
Come per il multiplexing tradizionale, i led vengono accesi singolarmente (o a gruppi) ad una frequenza elevata in modo che l'occhio venga ingannato.
La frequenza minima da mantenere è di almeno 50 Hz. Con l'aumentare del numero dei led si allunga l'intervallo di tempo tra una accensione e la successiva. Se questo tempo diventa troppo lungo si avverte lo sfarfallio del led.
Se l'occhio non si accorge che il led si spegne e si riaccende, vede però una luminosità inferiore a quella che vedrebbe se il led fosse sempre acceso perché fa una media della luce emessa nel tempo.
Più aumenta il tempo tra un ciclo e il successivo e minore è la luminosità vista.
Per ovviare a questo problema si può aumentare la corrente nel led in modo da renderlo più luminoso quando il led è acceso. In questo modo la luminosità media aumenta ma il limite è imposto questa volta dalla massima corrente ammessa dal led oltre la quale ovviamente non si può andare.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

