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
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)?
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?
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
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.
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.
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.
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).
> 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.
>> 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
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
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.
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
> 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.
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 ;-)
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.
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?
> 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?
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).
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.
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.pdfhttp://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