Voglio usare una normale scheda Arduino per controllare i LED: qual è il maggior numero di luci che posso controllare individualmente dalla scheda?
Esiste un tutorial su come collegarlo?
Voglio usare una normale scheda Arduino per controllare i LED: qual è il maggior numero di luci che posso controllare individualmente dalla scheda?
Esiste un tutorial su come collegarlo?
Risposte:
Credo che usando le linee N Charlie-plexing controlli i LED N * (N-1). C'è un buon articolo su Wikipedia.
Una mia amica, Jimmie P. Rodgers, monta 126 LED su uno scudo Arduino. Usa il charlie-plexing per controllare i LED. Alcune informazioni sulla sua bacheca sono disponibili all'indirizzo - jimmieprodgers.com/2009/12/my-development-process/ (copia di archive.org)
All'ultimo incontro del gruppo di utenti Arduino di Boston, Jimmie P. Rodgers ha disegnato un diagramma di plexing Charlie come una matrice con reti etichettate. Gli schemi disegnati in questo modo sembravano fare un buon lavoro nel comunicare il concetto. Ho creato un paio di schemi simili - Vedi http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html
jimmieprodgers.com
collegamento in questa risposta è caricato con virus.
È possibile utilizzare Shift Registers ( http://en.wikipedia.org/wiki/Shift_register ) per ottenere tutte le uscite parallele da un singolo flusso seriale che si desidera.
Dovrai preoccuparti dei tuoi limiti di potenza. In realtà non ho mai usato un Arduino da solo, ma presumo che abbia un limite attuale proprio come fanno i PIC. Inoltre, i registri a turno avranno un limite attuale. Se ti imbatti in questo, dovrai guardare usando qualcosa come un MOSFET per permetterti di controllare i LED senza dover trarre molta energia direttamente dal tuo micro controller.
Ogni dato pin del microcontrollore AVR può essere alimentato fino a 40 mA e l'alimentazione totale fornita o affondata dal chip (ovvero, a terra e pin Vcc) deve essere inferiore a 200 mA.
Il charlieplexing è un'ottima soluzione per le situazioni in cui sono necessari molti LED, ma può cavarsela con un solo LED acceso alla volta. Una scheda Arduino standard (come una Duemilanove) fornisce 17 pin I / O "liberi", senza contare TX, RX, Reset o pin 13. Quindi, è possibile collegare 17 * 16 = 272 LED. Questo può funzionare bene, soprattutto se si tiene acceso un LED o si esegue rapidamente la scansione tra pochi. Ma se stai provando a illuminare l'intera matrice con uno schema, scoprirai che ognuno è acceso (leggermente inferiore a) 1/272 del tempo, quindi se la corrente del tuo drive era di 30 mA in un dato momento, ogni LED la corrente media sarebbe di circa 0,1 mA, piuttosto debole.
Se non hai bisogno di molti LED ma invece hai bisogno di più luminosità, il multiplexing tradizionale potrebbe essere un'opzione migliore. In questo caso, usi alcune delle tue linee come righe e altre come colonne in una matrice. Se si utilizza una corrente LED da 10 mA, è possibile definire una matrice di 4 colonne e 13 righe, in cui tutti e 4 i LED di una riga possono essere accesi alla volta e si esegue la scansione delle righe. Quindi ogni riga è attiva 1/13 del tempo con una corrente di 10 mA, quindi la corrente media dei LED può arrivare a 0,76 mA, ma ottieni solo 4 * 13 = 104 LED. (Decisamente più luminoso per LED rispetto al charlieplexing.)
Il limite nell'ultimo esempio è 40 mA per pin sull'AVR, poiché ogni riga che guida i pin genera 4x10 = 40 mA. Se si consente ai transistor esterni (che possono essere economici e di piccole dimensioni) di essere aggiunti alle uscite di riga, è possibile evitare quel limite particolare e diventare più luminosi. Ad esempio, è possibile creare un array 8x9, con 8 righe e 9 colonne, 72 LED in totale. Una delle 8 file è accesa alla volta, selezionata attraverso il transistor. È possibile accendere contemporaneamente fino a tutti e 9 i LED in una determinata riga, pilotati a 20 mA, quindi 180 mA provengono dal transistor e si mantengono i limiti attuali dell'AVR. La corrente media per LED è ora di 20 mA / 8 = 2,5 mA, generalmente ragionevolmente luminosa.
C'è una bella, tutorial dettagliato qui che include una sezione utilizzando un Arduino per eseguire un cubo di 8x8x8 LED. (Non perdere il film di YouTube che hanno)
Con 17 pin I / O, diciassette transistor NPN (follower di emettitori per aumentare la corrente) non dovrebbero esserci problemi particolari che mostrano 272 LED in combinazioni arbitrarie a ciclo di lavoro 1/17, con corrente media o 0,7 mA (200 mA / 272), limitato da la capacità del chip di abbattere 200mA alla volta. L'aggiunta di un diodo per ottenere una caduta di 0,7 volt consentirà l'aggiunta di altri 17 LED (riducendo il ciclo di lavoro a 1/18), sebbene la luminosità non corrisponda abbastanza agli altri.
Mentre Windell Oskay sostiene che 104 LED sono i massimi senza aggiungere più transistor, Tom Igoe ha pubblicato le foto di una matrice di 128 LED controllata direttamente da un singolo Arduino Mega - nessun transistor extra, discreto o integrato.
Tom Igoe "tradisce" superando brevemente la "massima corrente assoluta per pin" indicata nella scheda tecnica?