Sommario:
- Passaggio 1: 20 LED su 5 pin
- Passaggio 2: Charlieplexing
- Passaggio 3: metterlo al lavoro
- Passaggio 4: più piccolo e più versatile…
- Passaggio 5: Itty Bitty
- Passaggio 6: software
Video: Come pilotare molti LED da pochi pin del microcontrollore: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Usando il fatto che molti pin del microcontrollore hanno tre stati (+V, GND o "alta impedenza", puoi pilotare N*(N-1) LED dai pin N. Quindi il piccolo microcontrollore a 8 pin come un PIC12Fxxx o un ATtiny11 può pilotare 20 LED sui cinque pin di uscita disponibili e hanno ancora un pin rimasto per qualche tipo di input. Vedi anche
Passaggio 1: 20 LED su 5 pin
L'attuale raccolto di microcontrollori a basso numero di pin (6 pin a 20 pin su
l'intero pacchetto) hanno un prezzo interessante e "carino", ma sorge la domanda su come utilizzare al meglio quei pin per applicazioni comuni come il pilotaggio dei LED. Un approccio a connessione diretta per pilotare i LED consuma un pin per ciascun LED. Uno schema di multiplexing tradizionale in cui le file di anodi LED sono pilotate da un set di N pin e il catodo comune di ogni riga è pilotato da un altro set di M pin riesce ad accendere i LED N*M con i pin N+M. Tuttavia, su un processore con solo 5 o meno uscite (come nel caso della maggior parte dei microcontrollori a 8 pin), questo ti dà a malapena più uscite rispetto all'azionamento diretto.
Passaggio 2: Charlieplexing
Supponendo che i pin di uscita siano effettivamente abilitati a tre stati (attivo alto, attivo basso e alta impedenza (ingresso)), è anche possibile condividere i driver di riga e colonna e controllare N*(N-1) LED con solo N pin. Un pin è collegato ai catodi comuni di una fila di LED e guidato in basso, e gli N-1 pin rimanenti sono collegati agli anodi e guidati in alto per illuminare quella colonna, o lasciati come input per lasciare il LED spento. Maxim chiama questa tecnica "Charlieplexing", e la descrive in (1); Microchip lo menziona anche nel loro documento (2) (e implementato anche sulla scheda PICKit 1.) (1) "Charlieplexing - Multiplexing del display a LED con numero di pin ridotto" https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880(2) "Tips 'n Tricks Microcontrollori FLASH PIC a 8 pin"https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) Charlieplexing LEDs- The theory An Instructable by rgbphil
Passaggio 3: metterlo al lavoro
Questo pilota 20 LED da un ATtiny11. Una versione precedente di questa scheda era
effettivamente costruito e appare come foto della pagina principale. Temo che l'immagine dello schema sia piuttosto disperata; hai bisogno che Eagle ti dica quali segnali sono collegati dove.
Passaggio 4: più piccolo e più versatile…
Poiché la maggior parte della scheda è occupata dall'array LED, possiamo fare spazio
per un chip Attiny OPPURE per un chip PIC12F con microchip. Riduci i LED a 3 mm e vai su una scheda a doppia faccia, e otteniamo qualcosa di 27x44 mm Ahimè, questa scheda non è stata ancora testata…
Passaggio 5: Itty Bitty
Microchip ha ovviamente i suoi chip PIC10F a 6 pin, in grado di pilotare un
solo 6 LED dai 3 pin di uscita. Questo è di circa 16 mm di diametro. Passare a 603 LED ti consente di rimpicciolire un po', ma non sono sicuro di quale sia il punto.
Passaggio 6: software
Il software diventa un po' disordinato per motivi di server:
1) per i PCB mostrati, i LED sono disposti in modo conveniente per il layout del PCB, piuttosto che nell'ordine di bit "corretto". IMO, questo è il modo di fare le cose, ma significa che Riga 1 non significa necessariamente bit 1, o coluimn 3 non significa bit 3. Ciò richiede un livello di mappatura tra il solito indirizzamento riga/colonna e il bit che devono essere impostati. 2) Poiché vengono utilizzati gli stessi bit per anodi e catodi, la connessione comune (riga) per alcuni bit può trovarsi nel mezzo dei bit pilotati (colonna). Ciò significa che devi spostare i bit di colonna a seconda che siano prima o dopo il bit di riga per quel set di colonne. 3) Devi derivare le parole di output sia per l'ioport che per il registro di direzione della porta. Il codice ASM allegato per ATtiny11 è una "prova di concetto". È imbarazzante non ottimizzato e poco commentato, ma è tutto ciò che ho scritto finora.
Consigliato:
PCB estensore I/O versatile per controllare molti tubi Nixie con I2C: 9 passaggi (con immagini)
PCB estensore I/O versatile per controllare molti tubi Nixie con I2C: Attualmente c'è molto interesse nel dare vita a tubi nixie vintage. Sul mercato sono disponibili molti kit di orologi a tubo nixie. Sembrava esserci anche un vivace commercio di vecchi stock di tubi nixie russi. Anche qui su Instructables lì
Una radio definita dal software con pochi soldi: 9 passaggi (con immagini)
Una radio definita dal software con pochi soldi: All'inizio era il set di cristalli, il primo ricevitore radio pratico per la trasmissione. Ma aveva bisogno di un'antenna lunga e poteva ricevere solo stazioni locali. Quando sono arrivate le valvole (tubi, per i nostri amici americani) hanno permesso di costruire molto di più
Configurazione dei fusibili del microcontrollore AVR. Creazione e caricamento nella memoria flash del microcontrollore del programma di lampeggio dei LED.: 5 passaggi
Configurazione dei fusibili del microcontrollore AVR. Creazione e caricamento nella memoria flash del microcontrollore del LED lampeggiante Program.: In questo caso creeremo un semplice programma in codice C e lo masterizzeremo nella memoria del microcontrollore. Scriveremo il nostro programma e compileremo il file esadecimale, utilizzando Atmel Studio come piattaforma di sviluppo integrata. Configurare il fusibile bi
Controlla molti servi con Arduino!: 4 passaggi (con immagini)
Controlla un sacco di servo con Arduino!: All'inizio dovrei dire qualcosa. Non avevo belle foto. Quindi, ho preso le foto da bildr.blog. Sappiamo, un Arduino UNO non ha molti pin pwm per controllare molti servo. Quindi, spesso cadiamo nel problema di controllare più servi da un arduino
Come leggere molti switch con un pin MCU: 4 passaggi
Come leggere molti switch con un pin MCU: Ti sei mai sbronzato per un progetto e il progetto continua a crescere e crescere, mentre aggiungi più cose ad esso (lo chiamiamo un feaping Creaturism)? In un recente progetto, stavo costruendo un frequenzimetro e ho aggiunto un cinque funzioni