Come pilotare un LED da 20 mA da un pin GPIO massimo di 4 mA


16

Ho un IC che ha un GPIO con il quale vorrei guidare un LED.

Poiché il dispositivo si sta esaurendo la batteria, mantenere il consumo di energia basso (zero forse) mentre il LED è spento come priorità.

Il GPIO fornisce 3,3 V quando acceso e 0,0 V voti quando spento.

Ha anche un limite di massimo 4 mA.

Il LED ha una corrente diretta di 20 mA e una tensione diretta desiderata di 2,0 V.

Quando il LED è acceso, molto probabilmente lampeggerà (usando PWM) nel range basso kilohertz.

Dopo aver cercato, credo che questo potrebbe essere il tipo di circuito di cui ho bisogno.

inserisci qui la descrizione dell'immagine

Domanda 1: Sono anche vicino a essere sulla strada giusta.

Domanda 2: Qual è il componente corretto da utilizzare per l'articolo (5), (Transistor o Mosfet), e come posso fare per trovarne uno (nei Frys locali, RadioShack, Online) e come vengono identificati (specificati)?

Domanda 3: La scelta dell'articolo (5) avrà qualche effetto sul valore ohm dell'articolo resistore (3)? Oltre alla normale legge di Ohm per la fonte di alimentazione 3.0V e il LED 2.0V.

Domanda 4: Quale sarebbe il valore ohm dell'articolo resistore (2), se necessario.

Risposte:


29

Il circuito che mostri dovrebbe funzionare, ma è inutilmente complicato e costoso. Ecco qualcosa di più semplice ed economico:

Quasi ogni piccolo transistor NPN che puoi trovare funzionerà in questo ruolo. Se la caduta BE del transistor è di 700 mV, il LED scende di 2,0 V, quindi ci saranno 600 mV attraverso R1 quando il LED è acceso. In questo esempio, ciò consentirà a 17 mA di fluire attraverso il LED. Aumenta il resistore se puoi tollerare una luce inferiore dal LED e vuoi risparmiare energia.

Un altro vantaggio di questo circuito è che il collettore del transistor può essere collegato a qualcosa di più alto di 3,3 V. Ciò non cambierà la corrente attraverso il LED, solo la caduta di tensione sul transistor e quindi quanto dissipa. Questo può essere utile se 3,3 V proviene da un piccolo regolatore e la corrente del LED aggiungerebbe un carico significativo. In tal caso, collegare il collettore alla tensione non regolata. Il transistor in effetti diventa il regolatore solo per il LED e la corrente del LED proviene dall'alimentazione non regolata e non consuma il budget di corrente limitato del regolatore a 3,3 V.

Inserito il:

Vedo che c'è un po 'di confusione su come funziona questo circuito e perché non esiste un resistore di base.

Il transistor viene utilizzato nella configurazione del follower dell'emettitore per fornire guadagno di corrente, non guadagno di tensione. La tensione dall'uscita digitale è sufficiente per pilotare il LED, ma non può alimentare abbastanza corrente. Questo è il motivo per cui il guadagno corrente è utile ma non è necessario il guadagno di tensione.

Diamo un'occhiata a questo circuito supponendo che la caduta di BE sia fissa a 700 mV, la tensione di saturazione CE è di 200 mV e il guadagno è 20. Questi sono valori ragionevoli tranne che il guadagno è basso. Sto usando deliberatamente un guadagno basso per ora perché vedremo più avanti che è necessario solo un guadagno minimo dal transistor. Questo circuito funziona bene fintanto che il guadagno è ovunque da quel valore minimo all'infinito. Quindi analizzeremo al guadagno irrealisticamente basso di 20 per un piccolo transistor di segnale. Se tutto funziona bene con questo, stiamo bene con qualsiasi transistor di segnale reale che incontrerai. Il 2N4401 che ho mostrato può contare su un guadagno di circa 50 in questo caso, ad esempio.

La prima cosa da notare è che il transistor non può saturare in questo circuito. Poiché la base è guidata a un massimo di 3,3 V, l'emettitore non è mai più di 2,6 V a causa della caduta BE di 700 mV. Ciò significa che c'è sempre un minimo di 700 mV attraverso CE, che è ben al di sopra del livello di saturazione di 200 mV.

Poiché il transistor è sempre nella sua regione "lineare", sappiamo che la corrente del collettore è la corrente di base moltiplicata per il guadagno. La corrente dell'emettitore è la somma di queste due correnti. Il rapporto tra emettitore e corrente di base è quindi guadagno + 1 o 21 nel nostro esempio.

Per calcolare le varie correnti, è più semplice iniziare con l'emettitore e utilizzare le relazioni di cui sopra per ottenere le altre correnti. Quando l'uscita digitale è a 3,3 V, l'emettitore è inferiore di 700 mV o a 2,6 V. Il LED è noto per far cadere 2,0 V, in modo da lasciare 600 mV attraverso R1. Dalla legge di Ohm: 600mV / 36Ω = 16,7mA. Ciò illuminerà bene il LED ma lascerà un piccolo margine per non superare il suo massimo di 20 mA. Poiché la corrente dell'emettitore è 16,7 mA, la corrente di base deve essere 16,7 mA / 21 = 790 µA e la corrente del collettore 16,7 mA - 790 µA = 15,9 mA. L'uscita digitale può generare fino a 4 mA, quindi siamo ben conformi alle specifiche e non lo cariciamo nemmeno in modo significativo.

L'effetto netto è che la tensione di base controlla la tensione dell'emettitore, ma il sollevamento pesante per fornire la corrente dell'emettitore viene effettuato dal transistor, non dall'uscita digitale. Il rapporto di quanta corrente LED (la corrente dell'emettitore) proviene dal collettore rispetto alla base è il guadagno del transistor. Nell'esempio sopra quel guadagno era 20. Per ogni 21 parti di corrente attraverso il LED, 1 parte proviene dall'uscita digitale e 20 parti dall'alimentazione a 3,3 V tramite il collettore del transistor.

Cosa accadrebbe se il guadagno fosse maggiore? Ancora meno della corrente complessiva del LED verrebbe dalla base. Con un guadagno di 20, 20/21 = 95,2% proviene dal collezionista. Con un guadagno di 50 è 50/51 = 98,0%. Con un guadagno infinito è del 100%. Questo è il motivo per cui questo circuito è in realtà molto tollerante alla variazione di parte. Non importa se il 95% o il 99,9% della corrente LED proviene dall'alimentazione a 3,3 V tramite il collettore. Il carico sull'uscita digitale cambierà, ma in ogni caso sarà ben al di sotto del suo massimo, quindi non importa. La tensione dell'emettitore è la stessa in tutti i casi, quindi il LED vedrà la stessa corrente se il transistor ha un guadagno di 20, 50, 200 o più.

Un altro sottile vantaggio di questo circuito che ho menzionato prima è che il collettore non deve essere collegato all'alimentazione a 3,3 V. Come cambiano le cose se il collettore fosse legato a 5 V, per esempio? Nulla dal punto di vista del LED o dell'uscita digitale. Ricordare che la tensione dell'emettitore è una funzione della tensione di base. La tensione del collettore non importa finché è abbastanza alta da mantenere il transistor fuori dalla saturazione, che era già 3,3 V. L'unica differenza sarà la caduta CE attraverso il transistor. Ciò aumenterà la dissipazione di potenza del transistor, che nella maggior parte dei casi sarà il fattore limitante della massima tensione del collettore. Supponiamo che il transistor possa dissipare in sicurezza 150 mW. Con la corrente del collettore da 16,7 mA siamo in grado di calcolare la tensione del collettore all'emettitore per causare una dissipazione di 150 mW:

Ciò significa che in questo esempio possiamo legare il collettore a qualsiasi alimentazione utile da 3,3 V a 11,6 V. Non è nemmeno necessario regolarlo. Potrebbe fluttuare attivamente ovunque all'interno di tale intervallo e la corrente del LED rimarrebbe ben stabile. Ciò può essere utile, ad esempio, se 3,3 V è realizzato da un regolatore con scarsa capacità di corrente e la maggior parte di ciò è già allocata. Se funziona ad un'alimentazione di circa 5 V, ad esempio, questo circuito può ottenere la maggior parte della corrente LED da quella alimentazione a 5 V mantenendo comunque la corrente del LED ben regolata . E, questo circuito è molto tollerante alle variazioni delle parti del transistor. Finché il transistor ha un guadagno minimo, che è ben al di sotto di quello che forniscono i transistor di segnale più piccoli, il circuito funzionerà bene.

Una delle lezioni qui è di pensare a come funziona davvero un circuito. In ingegneria non c'è posto per reazioni istintive o superstizioni come mettere sempre un resistore in serie con la base. Mettine uno lì quando è necessario, ma nota che non è sempre, come mostra questo circuito.


Sul transistor manca la resistenza di limitazione della corrente sulla sua base.
Passerby

3
@Passerby - No, non lo è. Questa è una topologia intelligente che non ne ha bisogno.
Connor Wolf,

1
@AndrewKohlsmith - Questo dovrebbe anche essere abbastanza immune alle variazioni di processo nel transistor. Finché il transistor ha abbastanza beta, qualsiasi dispositivo funzionerà praticamente.
Connor Wolf

2
Wow bella risposta, cambiato il modo in cui vedo il design del circuito.
Abdullah Kahraman,

1
Non è affatto sorpreso di essere visceralmente commosso da un esempio ben ragionato e articolato e di vedere il nome "Olin Lathrop" come collaboratore. Sì, mi rendo conto che questo è> 5,5 anni dopo la risposta effettiva. Ecco quanto è buona una risposta. +1
jayce,

3

Molti LED oggi sono molto luminosi e funzionano bene da 4 mA o anche meno e ti farà risparmiare i componenti esterni extra. I LED che uso comunemente funzionano perfettamente (per la mia applicazione) a 1 mA!

Basta mettere un resistore in serie con il LED, abbastanza grande da limitare la corrente. Controlla se non superi la corrente massima per l'intero dispositivo, è specificato nel foglio dati.

Quindi controlla se il tuo LED è abbastanza luminoso direttamente collegato dal pin GPIO con un resistore serie:

R=UdropioLED =3.3-2.0V4mA=1.2V4mA=300Ω

Ω


Ho appena provato un LED rosso da 10 mm e un LED bianco da 5 mm, con corrente di azionamento di 2 mA ed entrambi sono molto visibili. A 4 mA, entrambi sono abbastanza luminosi. Il LED da 10 mm ha una potenza nominale di 30 mA, mentre il LED bianco ha una potenza nominale di 25 mA.
Anindo Ghosh

0

So che la tua domanda riguardava componenti discreti, ma penso che nel caso generale probabilmente stai meglio guardando un buffer basato su IC o un driver di linea. Ad esempio, l'ULN2803 è un buffer ottale (8 I / O) e assorbirà meno di 2 mA dai pin GPIO, ma può pilotare fino a 500 mA per uscita. (Sta invertendo la logica, quindi il tuo codice deve tenerne conto). Ovviamente vorresti usare resistori limitatori di corrente per i tuoi LED.


0

Commentando lo schema proposto nel post originale:

L'uso di un transistor NMOS FET discreto come questo sarebbe un interruttore.

  • Non è necessaria alcuna resistenza in serie per il gate di un MOSFET.
  • Selezionare un FET con una tensione di soglia di circa 1 V al di sotto della tensione di alimentazione per assicurarsi che sia ben saturo quando acceso, e quindi la caduta di tensione attraverso il MOSFET sarà bassa. (I MOSFET sono degli ottimi interruttori.)
  • La corrente del LED verrà impostata da ILED = (VCC - Vf - Vds) / R. Per i numeri indicati e assumendo 0,2 V attraverso il FET, R = (3,3 - 2,0 - 0,2) / 20 mA = 51 o 56 ohm (valore standard più vicino)

Nota: normalmente l'anodo LED è collegato all'alimentazione e il resistore è in serie con il catodo; ciò può migliorare il tempo di commutazione riducendo la quantità di capacità nel circuito che deve essere caricata / scaricata durante la commutazione poiché la tensione del catodo "collasserà" alla tensione dell'anodo quando è spenta.

Come menzionato da un altro poster, se la corrente richiesta dal LED è abbastanza bassa è possibile utilizzare direttamente GPIO. In modalità drain aperto è identico al comportamento con un FET esterno (ma invertito). Ma non consiglierei di eseguire una porta uC a più di 1 mA per lungo tempo; l'IC potrebbe non essere progettato per grandi correnti costanti del genere (potrebbero essere problemi di elettromigrazione o autoriscaldamento).

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.