So treiben Sie eine 20-mA-LED von einem max. 4-mA-GPIO-Pin an

Ich habe einen IC mit einem GPIO, mit dem ich eine LED ansteuern möchte.

Da das Gerät ohne Batterie betrieben wird, ist es wichtig, den Stromverbrauch niedrig zu halten (möglicherweise Null), während die LED ausgeschaltet ist.

Der GPIO liefert im eingeschalteten Zustand 3,3 V und im ausgeschalteten Zustand 0,0 V.

Es hat auch eine Grenze von maximal 4mA.

Die LED hat einen Durchlassstrom von 20 mA und eine gewünschte Durchlassspannung von 2,0 V.

Wenn die LED eingeschaltet ist, blinkt sie höchstwahrscheinlich (unter Verwendung von PWM) im niedrigen Kilohertz-Bereich.

Nachdem ich mich umgesehen habe, glaube ich, dass dies die Art von Schaltung sein könnte, die ich brauche.

Geben Sie hier die Bildbeschreibung ein

Frage 1: Bin ich auch nur annähernd auf dem richtigen Weg?

Frage 2: Was ist die richtige Komponente für Punkt (5) (Transistor oder Mosfet), und wie finde ich eine (bei den örtlichen Frys, RadioShack, Online) und wie werden sie identifiziert (angegeben)?

Frage 3: Wirkt sich die Wahl von Punkt (5) auf den Ohmwert des Widerstands Punkt (3) aus? Abgesehen vom normalen Ohmschen Gesetz für die 3,0-V-Stromquelle und die 2,0-V-LED.

Frage 4: Wie hoch wäre der Ohm-Wert des Widerstands (2), falls erforderlich.

Antworten (4)

Die Schaltung, die Sie zeigen, sollte funktionieren, ist aber unnötig kompliziert und teuer. Hier ist etwas einfacher und billiger:

Fast jeder kleine NPN-Transistor, den Sie finden können, wird in dieser Rolle funktionieren. Wenn der BE-Abfall des Transistors 700 mV beträgt, fällt die LED um 2,0 V ab, dann liegen 600 mV über R1 an, wenn die LED eingeschaltet ist. In diesem Beispiel können 17 mA durch die LED fließen. Machen Sie den Widerstand höher, wenn Sie weniger Licht von der LED tolerieren können und etwas Strom sparen möchten.

Ein weiterer Vorteil dieser Schaltung besteht darin, dass der Kollektor des Transistors an etwas mehr als 3,3 V angeschlossen werden kann. Dies ändert nicht den Strom durch die LED, sondern nur den Spannungsabfall am Transistor und damit die Verlustleistung. Dies kann nützlich sein, wenn die 3,3 V von einem kleinen Regler kommen und der LED-Strom eine erhebliche Last hinzufügen würde. Schließen Sie in diesem Fall den Kollektor an die ungeregelte Spannung an. Der Transistor wird tatsächlich zum Regler nur für die LED, und der LED-Strom kommt aus der ungeregelten Versorgung und verbraucht nicht das begrenzte Strombudget des 3,3-V-Reglers.

Hinzugefügt:

Ich sehe, dass es einige Verwirrung darüber gibt, wie diese Schaltung funktioniert und warum es keinen Basiswiderstand gibt.

Der Transistor wird in einer Emitterfolgerkonfiguration verwendet, um eine Stromverstärkung bereitzustellen, keine Spannungsverstärkung. Die Spannung vom digitalen Ausgang reicht aus, um die LED anzusteuern, aber sie kann nicht genug Strom liefern. Aus diesem Grund ist eine Stromverstärkung nützlich, eine Spannungsverstärkung jedoch nicht erforderlich.

Betrachten wir diese Schaltung unter der Annahme, dass der BE-Abfall fest 700 mV beträgt, die CE-Sättigungsspannung 200 mV beträgt und die Verstärkung 20 beträgt. Dies sind vernünftige Werte, außer dass die Verstärkung niedrig ist. Ich verwende vorerst bewusst eine niedrige Verstärkung, weil wir später sehen werden, dass nur eine minimale Verstärkung vom Transistor benötigt wird. Diese Schaltung funktioniert gut, solange die Verstärkung zwischen diesem Mindestwert und unendlich liegt. Wir analysieren also mit der unrealistisch niedrigen Verstärkung von 20 für einen Kleinsignaltransistor. Wenn damit alles gut funktioniert, sind wir mit allen echten Kleinsignaltransistoren, denen Sie begegnen werden, zufrieden. Der von mir gezeigte 2N4401 kann in diesem Fall beispielsweise mit einem Gewinn von etwa 50 rechnen.

Das erste, was zu beachten ist, ist, dass der Transistor in dieser Schaltung nicht sättigen kann. Da die Basis auf höchstens 3,3 V getrieben wird, liegt der Emitter aufgrund des BE-Abfalls von 700 mV nie über 2,6 V. Das heißt, es gibt immer ein Minimum von 700 mV über CE, was deutlich über dem Sättigungspegel von 200 mV liegt.

Da sich der Transistor immer in seinem "linearen" Bereich befindet, wissen wir, dass der Kollektorstrom der Basisstrom mal der Verstärkung ist. Der Emitterstrom ist die Summe dieser beiden Ströme. Das Verhältnis von Emitter- zu Basisstrom ist daher Verstärkung + 1 oder in unserem Beispiel 21.

Um die verschiedenen Ströme zu berechnen, ist es am einfachsten, mit dem Emitter zu beginnen und die obigen Beziehungen zu verwenden, um die anderen Ströme zu erhalten. Wenn der digitale Ausgang bei 3,3 V liegt, ist der Emitter 700 mV weniger oder bei 2,6 V. Die LED fällt bekanntlich um 2,0 V ab, sodass 600 mV über R1 verbleiben. Aus dem Ohmschen Gesetz: 600 mV / 36 Ω = 16,7 mA. Dadurch wird die LED gut beleuchtet, aber es bleibt ein kleiner Spielraum, um das Maximum von 20 mA nicht zu überschreiten. Da der Emitterstrom 16,7 mA beträgt, muss der Basisstrom 16,7 mA / 21 = 790 µA und der Kollektorstrom 16,7 mA - 790 µA = 15,9 mA betragen. Der digitale Ausgang kann bis zu 4 mA liefern, sodass wir gut innerhalb der Spezifikation liegen und ihn nicht einmal signifikant belasten.

Der Nettoeffekt besteht darin, dass die Basisspannung die Emitterspannung steuert, aber das schwere Heben, um den Emitterstrom bereitzustellen, vom Transistor und nicht vom digitalen Ausgang übernommen wird. Das Verhältnis, wie viel des LED-Stroms (der Emitterstrom) vom Kollektor im Vergleich zur Basis kommt, ist die Verstärkung des Transistors. Im obigen Beispiel betrug diese Verstärkung 20. Für je 21 Teile Strom durch die LED kommt 1 Teil vom Digitalausgang und 20 Teile von der 3,3-V-Versorgung über den Kollektor des Transistors.

Was würde passieren, wenn der Gewinn höher wäre? Noch weniger des gesamten LED-Stroms würde von der Basis kommen. Bei einem Gewinn von 20 kommt 20/21 = 95,2 % vom Kollektor. Bei einem Gewinn von 50 ist es 50/51 = 98,0 %. Bei unendlichem Gewinn sind es 100%. Aus diesem Grund ist diese Schaltung tatsächlich sehr tolerant gegenüber Teilevariationen. Ob 95 % oder 99,9 % des LED-Stroms aus der 3,3-V-Versorgung über den Kollektor kommt, spielt keine Rolle. Die Belastung des Digitalausgangs wird sich ändern, aber in allen Fällen deutlich unter ihrem Maximum liegen, also spielt das keine Rolle. Die Emitterspannung ist in allen Fällen gleich, sodass die LED den gleichen Strom sieht, unabhängig davon, ob der Transistor eine Verstärkung von 20, 50, 200 oder mehr hat.

Ein weiterer subtiler Vorteil dieser bereits erwähnten Schaltung besteht darin, dass der Kollektor nicht an die 3,3-V-Versorgung gebunden werden muss. Was ändert sich, wenn der Kollektor zum Beispiel auf 5 V gelegt wird? Nichts aus Sicht der LED oder des Digitalausgangs. Denken Sie daran, dass die Emitterspannung eine Funktion der Basisspannung ist. Die Kollektorspannung spielt keine Rolle, solange sie hoch genug ist, um den Transistor aus der Sättigung zu halten, was bereits 3,3 V waren. Der einzige Unterschied ist der CE-Abfall über den Transistor. Dies erhöht die Verlustleistung des Transistors, was in den meisten Fällen der begrenzende Faktor für die maximale Kollektorspannung ist. Nehmen wir an, der Transistor kann 150 mW sicher abführen. Mit dem Kollektorstrom von 16,7 mA können wir die Kollektor-Emitter-Spannung berechnen, um eine Verlustleistung von 150 mW zu verursachen: 150 mW / 16.

Das bedeutet, dass wir in diesem Beispiel den Kollektor an jede handliche Versorgung von 3,3 V bis 11,6 V anschließen können. Er muss nicht einmal geregelt werden. Es könnte irgendwo innerhalb dieses Bereichs aktiv schwanken und der LED-Strom würde schön konstant bleiben. Dies kann z. B. sinnvoll sein, wenn die 3,3 V von einem Regler mit geringer Stromfähigkeit bereitgestellt werden und das meiste davon bereits belegt ist. Wenn es beispielsweise mit einer Versorgung von ungefähr 5 V betrieben wird, kann diese Schaltung den größten Teil des LED-Stroms aus dieser 5-V-Versorgung beziehen und gleichzeitig den LED-Strom gut geregelt halten . Und diese Schaltung ist sehr tolerant gegenüber Variationen von Transistorteilen. Solange der Transistor eine gewisse Mindestverstärkung hat, die weit unter dem liegt, was die meisten Kleinsignaltransistoren bieten, funktioniert die Schaltung einwandfrei.

Eine der Lektionen hier ist, darüber nachzudenken , wie eine Schaltung wirklich funktioniert. In der Technik ist kein Platz für reflexartige Reaktionen oder Aberglauben, wie immer einen Widerstand in Reihe mit der Basis zu schalten. Legen Sie dort einen an, wenn er benötigt wird, aber beachten Sie, dass dies nicht immer der Fall ist, wie diese Schaltung zeigt.

Dem Transistor fehlt der Strombegrenzungswiderstand an seiner Basis.
@ Passant - Nein, ist es nicht. Dies ist eine clevere Topologie, die sie nicht benötigt.
@ConnorWolf auf welche Weise würde dies das GPIO des Mikrocontrollers auf 4 mA oder weniger begrenzen, oder wie ist der Transistor vorgespannt?
@Passerby: Der Basisstrom in diesem Szenario wäre normalerweise weniger als 1/30 (aber wahrscheinlich größer als 1/300) des Emitterstroms, es sei denn, die Kollektorspannung fällt mehr als ~ 0,4 Volt unter die Basisspannung.
Ich verstehe die Gründe, die Sie angegeben haben, aber ich bin kein Fan davon, die LED / den Widerstand auf den Emitter des Transistors zu setzen. Prozessvariationen und das Modell des Transistors und der LED sorgen für zu viele Variationen. Ich ziehe es vor, dass der Emitter an Masse angeschlossen ist, LED und Widerstand an das für die LED gewünschte V + gehen und einen Basiswiderstand enthalten (und möglicherweise einen BE-Widerstand, der etwa das 10-fache des Basis-GPIO-Widerstands beträgt, falls Rauschen ein Problem sein könnte.
@AndrewKohlsmith - Dies sollte auch ziemlich immun gegen Prozessschwankungen im Transistor sein. Solange der Transistor genug Beta hat, wird jedes Gerät so ziemlich funktionieren.
@Andrew: Siehe Ergänzung zu meiner Antwort. Ein Basiswiderstand wird nicht benötigt.
@OlinLathrop Ich verstehe Ihr Design, ich sage, dass ich es persönlich nicht mag, auf diese Weise zu entwerfen, weil es zu viel Variationspotential gibt. Die Treiberfähigkeit des GPIO, der Versorgung, des Transistors Beta/VCE, der LED-Vf usw. Wenn Platz oder Kosten absolut begrenzt sind, halte ich dies für eine elegante Lösung, aber es sei denn, ich habe einen bestimmten Bedarf dafür Weise bevorzuge ich, was ich für generischer halten würde.
@Andrew: Ein Teil des Punktes, den ich machen wollte, ist, dass dieses Design ziemlich tolerant gegenüber Teilevariationen ist. Wie ich gezeigt habe, kann die Transistorverstärkung von einer kleinen Zahl bis unendlich variieren. Der Drain am I/O-Pin ist geringer als bei einem geerdeten gemeinsamen Emitter und gegenüber der Kollektorspannung nahezu unempfindlich. Insgesamt ist dieses Design toleranter gegenüber Teilevariationen.
Sind für 150 mW im Transistor die 9 V eher für Vce als für Vc (wrt gnd)?
@RedGritty: Hoppla, guter Fang. Fest.
Wow, nette Antwort, hat meine Sicht auf das Schaltungsdesign geändert.
Überhaupt nicht überrascht, von einem wohlbegründeten und artikulierten Beispiel tief bewegt zu werden und den Namen „Olin Lathrop“ als Mitwirkenden zu sehen. Ja, mir ist klar, dass dies > 5,5 Jahre nach der tatsächlichen Antwort ist. So gut ist die Antwort. +1

Viele LEDs sind heute sehr hell und funktionieren gut ab 4 mA oder sogar weniger , und es erspart Ihnen die zusätzlichen externen Komponenten. LEDs, die ich normalerweise verwende, funktionieren (für meine Anwendung) bei 1 mA einwandfrei!

Schalten Sie einfach einen Widerstand in Reihe mit der LED, der groß genug ist, um den Strom zu begrenzen. Überprüfen Sie, ob Sie den maximalen Strom für das gesamte Gerät nicht überschreiten, er ist im Datenblatt angegeben.

Überprüfen Sie also, ob Ihre LED hell genug ist, direkt am GPIO-Pin mit einem Vorwiderstand:

R = U d r Ö p ich L E D   = 3.3 2.0 v 4 mA = 1.2 v 4 mA = 300 Ω

Runden Sie das auf den nächsten E12-Wert auf 330 auf Ω um auf der sicheren Seite zu sein.

Ich habe gerade eine rote 10-mm-LED und eine weiße 5-mm-LED bei 2 mA Antriebsstrom ausprobiert, und beide sind gut sichtbar. Mit 4 mA sind beide recht hell. Die 10-mm-LED ist für 30 mA ausgelegt, während die weiße LED für 25 mA ausgelegt ist.

Ich weiß, dass sich Ihre Frage auf diskrete Komponenten bezog, aber ich denke, im allgemeinen Fall sind Sie wahrscheinlich besser dran, sich einen IC-basierten Puffer oder Leitungstreiber anzusehen. Beispielsweise ist der ULN2803 ein Oktalpuffer (8 I/Os) und zieht weniger als 2 mA von Ihren GPIO-Pins, kann aber bis zu 500 mA pro Ausgang treiben. (Es ist eine invertierende Logik, also muss Ihr Code dies berücksichtigen). Offensichtlich möchten Sie Strombegrenzungswiderstände für Ihre LEDs verwenden.

Die invertierte Logik ist hier irrelevant, da Sie höchstwahrscheinlich die Last zwischen dem Kollektor und Vcc anschließen werden.
Sicher. Code und / oder tatsächliche Schaltung, in der Sie ihn verwenden werden. Es ist eine Selbstverständlichkeit, sobald Sie mit Physical Computing arbeiten

Kommentar zum vorgeschlagenen Schaltplan im ursprünglichen Beitrag:

Die Verwendung eines solchen diskreten NMOS-FET-Transistors als Schalter wäre gut.

  • Zum Gate eines MOSFET wird kein Vorwiderstand benötigt.
  • Wählen Sie einen FET mit einer Schwellenspannung von etwa 1 V unter Ihrer Versorgungsspannung, um sicherzustellen, dass er beim Einschalten gut gesättigt ist und der Spannungsabfall am MOSFET niedrig ist. (MOSFETs sind sehr gute Schalter.)
  • Der LED-Strom wird durch ILED = (VCC - Vf - Vds)/R eingestellt. Für die gezeigten Zahlen und unter der Annahme von 0,2 V über dem FET ist R = (3,3 - 2,0 - 0,2)/20 mA = 51 oder 56 Ohm (nächster Standardwert)

Hinweis: Normalerweise ist die LED-Anode mit der Versorgung verbunden und der Widerstand ist mit der Kathode in Reihe geschaltet; Dies kann die Schaltzeit verbessern, indem die Kapazität in der Schaltung reduziert wird, die beim Schalten geladen / entladen werden muss, da die Kathodenspannung im ausgeschalteten Zustand auf die Anodenspannung "kollabiert".

Wie ein anderes Poster erwähnte, wenn der von der LED benötigte Strom niedrig genug ist, können Sie den GPIO direkt verwenden. Im Open-Drain-Modus ist es identisch mit dem Verhalten mit einem externen FET (aber invertiert). Ich würde jedoch nicht empfehlen, einen uC-Port längere Zeit mit mehr als 1 mA zu betreiben. Der IC ist möglicherweise nicht für solche großen Konstantströme ausgelegt (könnte Elektromigration oder Probleme mit der Selbsterhitzung sein).