Esistono diversi metodi che possono essere utilizzati per pilotare un numero elevato di LED da pochi pin IO.
Il più semplice è il multiplexing standard di visualizzazione riga / colonna. Con questa tecnica, è possibile pilotare LED con n pin IO. Matematicamente, il ciclo di lavoro è:(n/2)2n
1minimum(unique row patterns, unique column patterns)
Ciò significa che questa tecnica ha un duty cycle del 100% quando tutti i LED sono accesi (o tutte le righe o tutte le colonne sono identiche) e un duty cycle di quando deve essere illuminata una linea diagonale (o tutte le righe sono diverse ). Il ciclo di lavoro è garantito al 100% solo quando si accendono tutti i LED o un LED (o zero LED, ma ciò non conta molto).1 / n
Leggermente più complesso è Charlieplexing . Con questa tecnica, è possibile pilotare LED con n pin IO. Solo n - 1 LED possono essere accesi contemporaneamente con questa tecnica. Matematicamente, il ciclo di lavoro è:n2- nnn - 1
1set simultanei minimi
dove un insieme simultaneo è un gruppo unico di LED che ha un anodo comune o un catodo comune. (Questo non è stato dimostrato, è proprio quello a cui sono arrivato dopo aver riflettuto sul problema per un minuto. Se il ciclo di lavoro è importante per te, ti consigliamo di approfondire ulteriormente.) Questo è un calcolo molto più complesso sia intellettualmente e computazionalmente rispetto al calcolo equivalente per il multiplexing standard. In effetti, si ottiene un duty cycle di quando tutti i LED sono accesi ma alcuni (solo alcuni) modelli di n-1 o meno LED possono avere un duty cycle del 100%. Il ciclo di lavoro è garantito al 100% solo quando si accende 1 LED.1 / n
L'ultimo metodo che menzionerò è l'uso di un registro a scorrimento o di un IO expander. Con due pin (interfaccia dati / clock non elaborati, I2C o SPI unidirezionale), è possibile controllare un numero arbitrariamente elevato di LED. Il ciclo di lavoro per qualsiasi modello è del 100%, ma la velocità di aggiornamento è inversamente proporzionale al numero di LED. Questo è il metodo più costoso. Per 15 LED, sarà probabilmente più economico passare a un micro con tanti pin IO.