Forum: Analoge Elektronik und Schaltungstechnik RGB Led über NPN/PNP Transistor schalten und verstärken (welche Technik ist sinnvoll)


von DrDoom (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

vorab möchte ich sagen, dass ich kein Elektrotechniker bin sondern 
Programmierer. Da ich seit geraumer Zeit uC programmiere, komme ich mehr 
und mehr mit dem Thema Elektrotechnik in Kontakt. Was mir auch immer 
mehr Spass macht.

Bei der Recherche im Netz kommt man um dieses Forum natürlich nicht drum 
herum. Daher fällt auch extrem auf, dass hier alle möglichen Leute mit 
1/4 oder Halbwissen angefeindet werden. Trotzdem hoffe ich einfach auf 
hilfreiche Beiträge.

Wie dem auch sei, für ein Projekt (Raspberry PI 3B mit Raspbian + 
Codelite und C++, Geräte: Accelerometer, Audio, OLED Display, Rotary 
Encoder, Powerbank, NFC, etc) möchte ich noch eine Status LED (RGB LED) 
über Transistoren mit einem PWM Signal ansteuern. Ggf. stelle ich später 
auf 4 Neopixel um. wie dem auch sei, die RGB LED nutzt eine gemeinsame 
Kathode. Als Spannungsquelle habe ich 12V, 5V und 3.3V vom uC (GPIO).

Mir reicht eine Spannung und Stromstärke unterhalb der maximalen 
Spezifikationen (RGB: 2V, 2.2V, 4V und 20mA). Ggf. regel ich 
Unterschiede bei der Helligkeit per Software nach.

Ich habe immer gedacht, dass NPN Transistoren zwischen (+) und 
Verbraucher geschaltet werden und PNP zwischen Verbraucher und (-). Da 
ich eine gemeinsame Kathode habe, wollte ich als erstes einen NPN BC639 
verwenden. Diese habe ich hier noch vorrätig.

Da es so viel zu Transistoren zu lesen gibt (verstehe bei weitem nicht 
alles), habe ich dann den Simulator EveryCircuit angeworfen und 4 
Schaltungen erstellt.

[siehe Anhang]

Gibt es in den angehängten Schaltungen grobe Fehler?
Was hat welche Schaltung für Vor- und Nachteile (z.B. zu starke 
Wärmeentwicklung wegen den Spannungen)?
Was kann man an den Schaltungen optimieren?


Vielen Dank schon mal.
Grüße DrDoom

von ArnoR (Gast)


Lesenswert?

DrDoom schrieb:
> Gibt es in den angehängten Schaltungen grobe Fehler?

Ja, gibt es.
Wie willst du in den Schaltungen 1 und 2 jemals die LED ausschalten 
(wenn die Steuerspannung 0V/3,3V ist)?

von Stefan F. (Gast)


Lesenswert?

Mit der 3. und 4. Schaltung wirst du auch nicht glücklich, weil die 
Ausgangsspannung für viele LEDs (insbesondere weiß und blau) zu gering 
ist.

Schau hier: 
http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf

Kapitel 2.2 und 3.4

Da geht es um AVR aber die Aussagen treffen ebenso auch auf deinen 
Raspberry Pi zu.

von Toxic (Gast)


Lesenswert?

DrDoom schrieb:
> vorab möchte ich sagen, dass ich kein Elektrotechniker bin sondern
> Programmierer.

Dem Bild nach zu urteilen haette ich dich eher als Astronomen 
eingeschaetzt,der eine intergalaktische Aufnahme des 
Milchstrassensystems zur Verfuegung stellt.....
Im Ernst:
Auch auf die Gefahr hin mich laecherlich zu machen,weil es jedes Kind 
weiss nur ich nicht:
Mit was fuer einem Programm hast Du denn den Schaltplan erstellt?

von U. M. (oeletronika)


Lesenswert?

Hallo,
prinzipiell geht die 2. Schaltung von oben mit dem pnp-Transistor.

Allerdings hängt der Transistor mit Emitter an 5V und die Basis bekommt 
bei High vom GPIO-Pin nur 3,3V. Die LED kann so nicht ausgeschaltet 
werden!

Abhilfe schafft ein zusätzliche Widerstand (R_be) zwischen Basis und 
Emitter des pnp-Trans.
Der dann vorhandene Spannungsteiler wird so eingestellt, dass
-> bei High-Pegel (GPIOout > 3V)   -> (U_be < 0,5V) -> LED OFF
-> bei Low-Pegel  (GPIOout < 0,5V) -> (U_be > 0,7V) -> LED ON.

Aus der ersten Bedingung folgt, dass der Spannungsteiler R_basis:R_be 
ein Verhältnis größer als ca. 3:1 haben sollte, damit der Transistor 
sperrt.
Vorschlag: R_basis = 3,6k...4,7k, R_be = 1k

Bei GPIOout < 0,5V stellt sich dann an der Basis eine ausreichende 
Spannung ein, um den Transistor durchzusteuern.

Prüfe aber, ob es zulässig ist, an den GPIO eine Spannung größer als 
3,3V anzulegen (GPIO-Pin 5V-tolerant ?), weil ja über den Vorwiderstand 
ein kleiner Strom von 5V in das GPIO-Pin fließen kann.

Falls das nicht zulassig ist, sollte noch eine Diode in Reihe zum 
Vorwiderstand geschaltet werden. Der Spannungsabfall über diese Diode 
kann dann auch bei der Dimensionierung berücksichtigt werden.
Gruß Öletronika

: Bearbeitet durch User
von Ach Du grüne Neune (Gast)


Angehängte Dateien:

Lesenswert?

DrDoom schrieb:
> Was kann man an den Schaltungen optimieren?

Wenn du eine RGB-LED mit gemeinsamer Anode verwenden würdest, käme die 
Schaltung zuverlässig mit nur einem Transistor aus.

: Wiederhergestellt durch Moderator
von Stefan F. (Gast)


Lesenswert?

Die I/O Pins der Raspberry Pi sind nicht 5V tolerant.

von Eddy C. (chrisi)


Lesenswert?

Falls der GPIO selbst nicht in der Lage ist, den geforderten Strom zu 
liefern, brauchst Du einen Treiber, das steht fest.

Ich würde den Strom für die Entscheidung bei 5mA ansetzen: Wenn Du mit 
weniger Helligkeit auskommst, brauchst Du für die RGB-LED nur noch drei 
Vorwiderstände. Das würde ich zuerst einmal prüfen.

Mit Treiber bei gemeinsamer Kathode musst Du Highside schalten, so viel 
steht fest.

Wenn keine zu hohe Präzision des LED-Stroms gefordert ist, würde ich 
erst mal überlegen, Variante 2 zu benutzen, wobei ich die LEDs ebenfalls 
aus 3.3V versorgen würde, womit Ausschalten möglich wird.

Wenn Du mehr willst, überlege Dir, ob Du vielleicht besser ein billiges 
IC nehmen willst, z.B. 74HCT04, sechs Inverter. Zwei davon jeweils 
parallel geschaltet, Vorwiderstände für die LEDs, aus 5V versorgt und 
3.3V-kompatibel, das kann es gewesen sein.

von Peter H. (borntopizza)


Angehängte Dateien:

Lesenswert?

Hi, ich würde dir empfehlen, wenn du die Helligkeit der LED´s per 
Software regeln möchtest, das ganze mit PWM zu realisieren. Das ganze 
könnte dann wie folgt aussehen (siehe Anhang). Vorteil hier wäre, dass 
beinahe die vollen 5 V durchgeschaltet werden, und dann die LED mit der 
Farbe seine 4V U forward abbekommt.

: Bearbeitet durch User
von DrDoom (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

wow, erstmal vielen Danke für die vielen hilfreichen Beiträge 
(ausgenommen Toxic).

###############################################
Toxic schrieb:
> Auch auf die Gefahr hin mich laecherlich zu machen,weil es jedes Kind weiss nur 
ich nicht: Mit was fuer einem Programm hast Du denn den Schaltplan erstellt?

Zitat aus meinem Eingangspost:
> habe ich dann den Simulator EveryCircuit angeworfen und 4 Schaltungen 
erstellt.
###############################################

ArnoR schrieb:
> Wie willst du in den Schaltungen 1 und 2 jemals die LED ausschalten (wenn die 
Steuerspannung 0V/3,3V ist)?

Ah man. Ist natürlich klar. Vielen Dank für den Hinweis!!

Stefanus F. schrieb:
> Mit der 3. und 4. Schaltung wirst du auch nicht glücklich, weil die 
Ausgangsspannung für viele LEDs (insbesondere weiß und blau) zu gering ist.

Danke dir. Ja mir ist auch aufgefallen, dass ich nicht auf eine 
akzeptable Spannung komme. Da jedoch blau in einer RGB Led eher 'zu 
hell' ist, hätte ich es zumindest einmal probiert.
Habe mir das Buch mit Kapitel 2.2 und 3.4 durchgelesen. Allerdings 
passen einige Sachen nicht auf z.B. die RGB LED mit gem. Kathode. Z.B. 
wird ja in dem Kapitel 2.2.1 NPN-Beispiel gegen (-) geschaltet. Das kann 
ich aber bei der LED leider nicht. Und das PNP-Beispiel kann ich nicht 
nutzen weil ich dann die Basis nicht mehr schalten kann. Wie auch in 
meinen Beispielen 1+2!
Ich lese trotzdem noch weiter in dem Buch. Das hilf auf jeden Fall.

Ach Du grüne Neune:
Das würde tatsächlich funktionieren. Wenn ich es richtig sehe, müsste 
ich jedoch 9 Bauteile á 3 RGB Farben verbauen? Hmm... ich hätte gehofft 
es reicht ein Transistor + Widerstände. Ich recherchiere noch einmal 
nach weiteren Lösungen.

Peter H.:
Ich habe die Schaltung nachgebaut. Leider komme ich nicht auf ~4V 
sondern auf 1.92V (laut Simulation).

von Stefan F. (Gast)


Lesenswert?

> Da jedoch blau in einer RGB Led eher 'zu
> hell' ist, hätte ich es zumindest einmal probiert.

Du hast nicht verstanden, wie Dioden funktionieren.

Wenn deine blaue LED eine Nennspannung von 3,6 Volt hat, dann wird sie 
bei 3V mit Glück gerade mal glimmen und mit 2,8V absolut dunkel sein.

Schau Dir mal die Kennlinien der konkreten LEDs an! Das kannst du nicht 
mit Glühlampen vergleichen.

> ich hätte gehofft es reicht ein Transistor

Nö, du brauchst 2.

> Ich habe die Schaltung nachgebaut. Leider komme ich nicht
> auf ~4V sondern auf 1.92V (laut Simulation).

An der LED wirst du immer ungefähr 2V messen, egal ob du sie mit 1mA 
oder 100mA bestromst. Wie gesagt, schaue Dir die Kennlinien der 
konkreten LEDs an!

Entscheidend ist, dass die Ausgangsspannung vom Transistor deutlich 
höher ist, als die Betriebsspannung der LED, damit der Widerstand noch 
etwas zum verheizen hat. Wenn der Widerstand nichts zum Verheizen hat, 
fehlt Dir die Möglichkeit, dem Strom festzulegen. Wenn die 
Ausgangsspannung zu gering ist, fließt zu wenig oder gar kein Strom. Und 
dann muss man noch die ganz erheblichen Streuungen berücksichtigen.

Deine Simulation geht von einer idealen Diode mit einer ganz bestimmten 
Spannung und einem ganz bestimmten Innenwiderstand aus. In der Realität 
kann die Spannungen aber durchaus einige hundert Millivolt davon 
abweichen, und der Innenwiderstand kann noch viel Stärker von der 
Simulation abweichen.

Bei Leistungs LEDs (die heiß werden) muss man außerdem die Abhängigkeit 
von der Temperatur berücksichtigen. Die Betriebsspannung sinkt bei 
steigender Temperatur.

Vergiss mal deine Simulation und arbeite lieber mit Datenblatt und 
Steckbrett.

von Peter H. (borntopizza)


Lesenswert?

>
> Peter H.:
> Ich habe die Schaltung nachgebaut. Leider komme ich nicht auf ~4V
> sondern auf 1.92V (laut Simulation).

Du hast ja parallel zu deiner 1. Diode mit Widerstand eine 2. Diode 
eingebaut. Warum auch immer :D  (daraus würde auch die Magic Smoke 
entstehen ) :D

Lass die rechte Diode weg, dann sollte es funktionieren. In meinem 
Simulationsprogramm hier konnte ich leider nur keine LED auswählen, 
deswegen musst einen normale Diode herhalten. LED´s haben 
unterschiedliche U forward Spannungen, von 1,5V (Rot) bis 4V (z.B. 
Blau). Du hast hier halt eine mit einer forward Voltage von ca. 2V 
gewählt, weswegen die Spannung natürlich 2V nicht übersteigen kann.

Aber ich glaub wir verwirren dich hier zu sehr :D

Einfach die Diode durch deine LED ersetzen. Widerstand und LED kannst du 
ja tauschen (also Widerstand oben, LED unten) , sollte bekannt sein, 
wenn du eine gemeinsame Kathode hast.

MfG

Peter

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

aus einem PI kannst du ja mit einem 74HCT125 (Vcc 5V Uin high ab 2V) den 
Pegel auf 5V heben und da deine Emitterfolger Schaltung 
(Collectorschaltung)
https://www.elektronik-kompendium.de/sites/slt/0204133.htm
mit Transistoren machen, das reicht dann 5V - 0,7V = 4,3V auch für blaue 
LED mit 3,6V + Vorwiderstand

: Bearbeitet durch User
von ArnoR (Gast)


Angehängte Dateien:

Lesenswert?

DrDoom schrieb:
> Ach Du grüne Neune:
> Das würde tatsächlich funktionieren. Wenn ich es richtig sehe, müsste
> ich jedoch 9 Bauteile á 3 RGB Farben verbauen? Hmm... ich hätte gehofft
> es reicht ein Transistor + Widerstände.

Du brauchst 2 Transistoren, aber natürlich nicht so viele Widerstände, 
die Hälfte reicht, siehe Anhang. Die 5V-Versorgung ist hier nur 
beispielhaft, du kannst ohne Änderungen (außer LED-Vorwiderstand) auch 
die 12V-Versorgung anschließen.

Die 3,3V ist die Versorgung des Raspberry Pi und die Signalquelle ist 
der GPIO.

von Joachim B. (jar)


Lesenswert?

ArnoR schrieb:
> Du brauchst 2 Transistoren

pro Kanal also 6

einfacher ist ein IC um die 5V Anhebung zu machen vor allem wenn man 
mehr als 1 Port benötigt

: Bearbeitet durch User
Beitrag #5521336 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

> Es geht auch mit nur einem Transistor

Was für eine Krampf Schaltung!

Nachteil 1:
> aber die Versorgungsspannung darf
> jetzt nicht mehr nennenswert von den 12 Volt abweichen

Nachteil 2:
> Außerdem muss das Signal vorher im Programm invertiert werden!

Nachteil 3:
> Der Transistor sollte keine hohe Verstärkung haben
Ich habe eine große Menge BC327-40 und BC337-40 in der Bastelkiste. 
Wegen dieser Sonderlocke würde ich jetzt nicht extra andere Transistoren 
kaufen wollen.

Ich ergänze Nachteil 4:
Jetzt brauchst du eine Zenerdiode, die ungefähr genau so viel kostet, 
wie der 2. Transistor.

Nachteil 5:
Wenn der Transistor wegen einem Kurzschluss am Ausgang durchbrennt, hast 
du einer herrliche Überspannung am Mikrocontroller. Der zweite 
Transistor hätte davor geschützt.

Beitrag #5521367 wurde von einem Moderator gelöscht.
von Cerberus (Gast)


Lesenswert?

Seltsam, dass hier keiner eine Emitterschaltung als Lösung vorschlägt.

von Stefan F. (Gast)


Lesenswert?

> Seltsam, dass hier keiner eine Emitterschaltung als Lösung vorschlägt.

Haha, sehr Lustig.

von Eddy C. (chrisi)


Lesenswert?

Stefanus F. schrieb:
>> Seltsam, dass hier keiner eine Emitterschaltung als Lösung vorschlägt.
>
> Haha, sehr Lustig.

Entweder ist es das oder exakt das Gegenteil. Mir kommt das Ding 
verdächtig trocken rüber ;-)

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

U. M. schrieb:
> Prüfe aber, ob es zulässig ist, an den GPIO eine Spannung größer als
> 3,3V anzulegen (GPIO-Pin 5V-tolerant ?), weil ja über den Vorwiderstand
> ein kleiner Strom von 5V in das GPIO-Pin fließen kann.

Ja, die Variante hätte ich auch vorgeschlagen. Ein kleiner Strom im 
oberen µA-Bereich ist praktisch immer zulässig, dafür sorgen schon die 
ESD-Schutzdioden.
Man kann dann auch noch einen weiteren R spendieren, zwischen dem 
µC-Ausgang und GND. Der wirkt mit den anderen als Teiler und sorgt 
dafür, dass die ESD-Dioden gar nichts zu tun bekommen. Siehe Anhang.

Nachteil auch dieser Schaltung ist, dass sie eben nur sinnvoll arbeitet 
bei 5V, für andere Spannungen muss man neu dimensionieren und für 
größere Spannungen wird das immer enger mit den Toleranzen. Auch sollte 
der µC seine Ausgangsspannungstoleranzen nicht voll ausnützen.
Aber wenn der TO die 5V (±5%) fix hat und möglichst wenig Aufwand 
spendieren will, dann ist das eine gangbare Lösung.

von DrDooom (Gast)


Lesenswert?

Stefanus F. schrieb:
> dass die Ausgangsspannung vom Transistor deutlich
> höher ist, als die Betriebsspannung der LED, damit der Widerstand noch
> etwas zum verheizen hat. Wenn der Widerstand nichts zum Verheizen hat,
> fehlt Dir die Möglichkeit, dem Strom festzulegen. Wenn die
> Ausgangsspannung zu gering ist, fließt zu wenig oder gar kein Strom. Und
> dann muss man noch die ganz erheblichen Streuungen berücksichtigen.

Vielen Dank. DAs bringt schon einiges Licht in's Dunkel was das 
Verhalten angeht.

Ich denke, dass es am sinnvollsten ist den Pegel am Ausgang des uC erst 
einmal auf 5V anzuheben. Hatte hier zwar noch Level Shifter von 3.3V auf 
5V aber ich finde die nicht mehr. Neue kommen morgen an.

Dazu hätte ich noch Fragen:
1. Kann ich LED's direkt mit Vorwiderstand an einem (Standard TE291) 
Level Shifter betreiben? ~150mA sollen die problemlos vertragen oder 
doch besser über einen Transistor.
2. Wird das Steuersignal an diesen Level Shiftern 'analog' oder 
'digital' angehoben? Also z.B.: 1.0V -> 1.5V und z.B. 2.0V -> 3.0V und 
z.B. 3.3V -> 5V
oder liegen bei allen Steuersignalen z.B. größer 0.7V dann die 5V an? 
Der Shifter benötigt 3.3V und 5V Spannungsversorgung.
Ich frage weil ich gelesen habe, dass die keine besonders hohen PWM 
Frequenzen Shiftern können und man evtl mit einem Kondensator das Signal 
glätten könnte?

von Stefan F. (Gast)


Lesenswert?

> Ich denke, dass es am sinnvollsten ist den Pegel
> am Ausgang des uC erst einmal auf 5V anzuheben.
> Hatte hier zwar noch Level Shifter von 3.3V auf 5V

Der Vorteil gegenüber einem simplen 5 Cent Transistor ist dann wo?

von DrDooom (Gast)


Lesenswert?

Na dass ich dann die blaue LED mit 4V betreiben kann.
Ich hatte ja in meinem Eingangsbeitrag geschrieben, dass ich mit der RGB 
Led (gemeinsame Kathode) und der Steuerspannungs an der Basis von 3.3V 
nicht auf 4V komme oder eben einige Bauteile benötige (und bei RGB dann 
x3).

von Stefan F. (Gast)


Lesenswert?

Dein Level Shifter besteht mindestens aus einem Transistor pro LED und 
benötigt noch einen zweiten, um au den gewünschten Laststrom zu kommen.

Ich sehe hier keinen Vorteil gegenüber der normalen Schaltung aus zwei 
Transistoren. Es sei denn, du hast einen Levelshifter, der von sich aus 
schon genug Strom liefert.

Wir reden hier doch immer noch von 4x3x20mA mit gemeinsamer Kathode, 
richtig?

Wenn Dir 10mA pro LED genügen, würde ich Dir ja den 74LVX244 als 8-Fach 
Treiber empfehlen, aber das wäre ja zu einfach.

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Stefanus F. schrieb:
> Ich sehe hier keinen Vorteil gegenüber der normalen Schaltung aus zwei
> Transistoren.
Wenn man den Aufwand für einen LED-Treiber auf ein Minimum reduzieren 
will, dann braucht man außer den LED + Vorwiderstand noch genau einen 
Transistor, sonst nix.

Dazu sucht man sich einen kleinen p-Kanal-FET, mit einer el. hohen U_gs, 
so dass der FET erst ab -2V anfängt zu leiten.
z.B.
http://www.vishay.com/docs/66717/sq2337es.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/VP2106%20B082313.pdf

An 5V LED-Spannung wird der FET also bei 3,3V (Ugs: -1,7V) am Gate noch 
sperren und bei 0V (-5V am Gate) leiten.

Ich würde aber zur Sicherheit noch einen Entkopplungwiderstand zwischen 
GPIO-Pin und Gate schalten (1...10kOhm). Damit kann auch die 
Schaltgeschwindigkeit so eingestellt werden, dass der FET für die FWM 
schnell genug ist, aber nicht zu schnell um Störspannungen zu 
reduzieren.
Gruß Öletronika

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.