Hallo,
ich habe ein Hobbyprojekt mit LEDs die über die GPIOs eines RPI 3B+ geschaltet werden. Ich möchte wissen, ob die in meiner Zeichnung eingetragenen Widerstandswerte stimmen und ob ich es so wie gezeichnet alles an das USB-Modul GND sowie GPIO GND problemlos anschließen kann?
Zu den Bauteilen:
Transistoren sind alle NPN des Typs BC547B (s.a. Reichelt), LEDs in gelb haben 2,0V, 20mA unjd die in rot 1,95V, 20mA. Die Dreiecke stellen die LEDs dar. Dioden brauche ich nicht, so wie ich es gelernt habe (da Gleichstrom). GPIOs in OUT Konfiguration des RPi sind 3,3V.
Stromquelle ist eine Powerbank mit USB-2.0 A Typ an USB 3.1 C Typ Kabel. Diese wird mit dem Modul bei
https://botland.de/kontaktplattenzubehor/19940-modul-mit-usb-typ-c-buchse-stecker-fur-steckbrett-pololu-3411-5904422300708.html
angeschlossen. Spannungs an VBUS also 5V.
Sieh dir mal im DB an, wie NPN Transistroen gezeichnet werden. Wenn du das richtig machst, dann musst du nicht mehr B, C und E hinschreiben.
Selbst gerechnet habe ich:
die 20mA sind keine Naturkonstante. Halbwegs brauchbare LEDs brennen dir mit 20mA das Augenlicht weg.
du hast die Uce vergessen...
LEDs in gelb haben 2,0V, 20mA unjd die in rot 1,95V, 20mA.
Das sind typische Werte. Welche Spannungen haben deine LED wirklich?
Was, wenn dieser typische Wert bei deinen LEDs mal nur 1,8V ist?
Mekre: Vorwiderstände sind "Ersatzstromquellen". Und nach der Theorie sollte der Innenwiderstand einer konstanten Stromquelle so hochohmig wie möglich sein. Rechne die Rv mal durch, wenn jede LED mit 1,95V einen eigenen Vorwiderstand bekommt. Und dann rechnest du den Strom mit deisem "Einzelvorwiderstand" aus, wenn die LED nur 1,8V hat. Du wirst 2 Sachen herausfinden:
die Widerstände werden hochohmiger (ist ja logisch) und
die geänderte LED Uf hat keine so großen Auswirkungen mehr auf die Stromänderung
die 20mA sind keine Naturkonstante. Halbwegs brauchbare LEDs brennen
dir mit 20mA das Augenlicht weg.
Die Werte stammen von den zu verwendenden LEDs von Reichelt:
LED 3-2000 RT und
LED 3-1300 GE
Wird bei mir also doch nichts mit dem "Augenleiden" ;-)
du hast die Uce vergessen...
Mache das wie gesagt nur als Hobby, deshalb weiß ich nicht wie ich Uce berechnen geschweige denn einbinden soll? Einzig Sinn machen würde evtl.
5V - 0,7V = 4,3V ?
Wären dann für rot 4,3k Ohm -> 4,7k Ohm (falls richtig)
und für gelb 4,3V / 4 mA = 1,075k Ohm -> 1,2k Ohm
die 20mA sind keine Naturkonstante. Halbwegs brauchbare LEDs brennen
dir mit 20mA das Augenlicht weg.
Die Werte stammen von den zu verwendenden LEDs von Reichelt:
LED 3-2000 RT und
Man /kann/ diese LEDs mit 20 mA betreiben, dann emittieren sie eben ihre typ. 2 Candela. Die Frage ist: wozu sollen die LEDs dienen? Für Anzeigezwecke oder als Raumbeleuchtung? In ersterem Fall empfiehlt es sich, den Vorwärtsstrom auf z.B. 2 mA zu beschränken (ausprobieren!), weil die Helligkeit sonst einfach zu hoch ist, um direkt hineinzuschauen (siehe den Hinweis von Lothar).
Man /kann/ diese LEDs mit 20 mA betreiben, dann emittieren sie eben ihre
typ. 2 Candela. Die Frage ist: wozu sollen die LEDs dienen? Für
Anzeigezwecke oder als Raumbeleuchtung? In ersterem Fall empfiehlt es
sich, den Vorwärtsstrom auf z.B. 2 mA zu beschränken (ausprobieren!),
weil die Helligkeit sonst einfach zu hoch ist, um direkt hineinzuschauen
(siehe den Hinweis von Lothar).
Danke für den Hinweis an euch beide. Ich habe die selben LEDs bereits in einer anderen Schaltung mit einer anderen Stromquelle mit 20mA betrieben, und sie waren gut so. Sie sind bzw. werden in einem Star Wars-Hangar mit Bodenbeleuchtung/Positionslichter (gelb) sowie eine Alarmblinkanlage mit den roten LEDs betrieben.
Ich wäre noch dankbar, wenn sich jemand zu der Uce Berechnung äußern würde...
Ich wäre noch dankbar, wenn sich jemand zu der Uce Berechnung äußern
würde...
U_ce ist die Spannung von Kollektor zu Emitter des Transistors. Sie müsste in der Berechnung der Vorwiderstände noch berücksichtigt werden, indem man sie von den 5 V Betriebsspannung subtrahiert (da die Kollektor-Emitter-Strecke ja in Reihe zu Widerstand und LEDs liegt). Die Werte der Vorwiderstände werden sich dadurch etwas verringern.
Ja, im Prinzip hast du richtig gerechnet. Aber den Unterschied in den LED Vorwiderständen wirst du kaum sehen, zumal die Farben und damit die Empfindlichkeit des Auges für dies Farben unterschiedlich sind. Man will ja vielleicht (zumindest ich), dass das Helligkeitsempfinden von beiden gleich ist und deshalb passe ich die Vorwiderstände dann nach meinem Empfinden an. Natürlich rechne ich grob vorher, so dass ich die obere Grenze für den Strom nicht überschreite.
Wenn die 200mV (es werden vermutlich sogar weniger sein) dir zu viel erscheinen: die alternative zu NPN sind kleine Logic-Level MOSFETs. Da brauchst du keine Basisvorwiderstände (hier: Gate). Und auch bei den NPN muss man nicht so 'kleinlich' rechnen: B=20, dein Ansatz, wird auch mit dem B=50 noch funktionieren. Also: stur beide Basisvorwiderstände mit 1k wählen.
Mir ist gerade noch aufgefallen, dass du ja rechts jeweils vier Stränge „gelb“ parallel geschaltet hast; die 80 mA sind aber schon recht nahe an der 100-mA-Grenze des BC547, womit dessen Stromverstärkung auch in diesem Bereich schon stark nachlassen dürfte. Einen BC54x würde ich allgemein nicht mit mehr als 50 mA Kollektorstrom belasten. In diesem Fall würde ich entweder einen BC337 (ebenfalls bipolar) oder gleich einen MOSFET wie z.B. IRLML5103 (allerdings SMD) nehmen.
Mir ist gerade noch aufgefallen, dass du ja rechts jeweils vier Stränge
„gelb“ parallel geschaltet hast; die 80 mA sind aber schon recht nahe an
der 100-mA-Grenze des BC547, womit dessen Stromverstärkung auch in
diesem Bereich schon stark nachlassen dürfte.
Datenblätter sagen typisch für Sättigung B=10, kann der µC den Strom liefern? Das hier verlinkte garantiert bei 100mA Strom und 5mA in die Basis 600mV Abfall, nicht toll.
Ich werde aus dem Gekritzel, was angeblich ein Schaktplan sein soll, nicht ganz schlau, aber es scheint grenzwertig auf Kante genäht zu sein.
Einen BC54x würde ich
allgemein nicht mit mehr als 50 mA Kollektorstrom belasten. In diesem
Fall würde ich entweder einen BC337 (ebenfalls bipolar)
Der soll besser gehen?
oder gleich
einen MOSFET wie z.B. IRLML5103 (allerdings SMD) nehmen.
Dieser Vorschlag ist Sabotage, ein Griff ins Klo. 0,6Ohm bei 4,5V Gate sind unpassend, aber als P-Kanal geht der sowieso nicht.
IRLML6344 wäre ein geeigneter N-FET mit <30mOhm@3,3Volt.
Datenblätter sagen typisch für Sättigung B=10, kann der µC den Strom
liefern? Das hier verlinkte garantiert bei 100mA Strom und 5mA in die
Basis 600mV Abfall, nicht toll.
sehr guter Einwand, zumal der Stino RPI nicht so viel Strom über Ports liefern oder als Senke aufnehmen sollte, es gab einige die das überlebten, aber die Stromfähigkeit nach VCC und nach GND ist begrenzt, die CPU/GPU kommt noch hinzu, bei 17 Ports und 50mA haben sich 3mA pro Port als verträglich herauskristallisiert. Jeder darf natürlich mit mehr Portstrom seinen RPI schrotten oder Glücksspiel betreiben.
Und auch bei den NPN
muss man nicht so 'kleinlich' rechnen: B=20, dein Ansatz, wird auch mit
dem B=50 noch funktionieren.
Hmmm, sorry, wenn ich jetzt blöd frage, aber was ist B? Meinst Du die Stromverstärkung (hFE)? Die ist doch deutlich größer als 50 (WIMRE min. 200). Und ich finde in keinem der überflogenen DB irgend ein "Derating" bei "Sättigung". Wäre ja auch komisch, wenn es eine Art "Foldback" des hFE geben würde. Oder meinst Du den differentiellen hfe? OK, ich weiß, man übersteuert immer um einen Faktor, um eben sicher in der Sättigung zu sein. Aber das ist ja keine Eigenschaft des Transistors.
User Klaus H. meinte, "stur beide Basisvorwiderstände mit 1k Ohm zu wählen" - meinst du damit nur die Basiswiderstände am Transistor für die "gelben" LEDs oder auch die der "roten"? Vorausgesetzt es bleibt bei den BC547B...
Wenn ihr mit jetzt trotzdem dazu raten wollt, bspw. den BC337 für die gelben LEDs zu nehmen, weiß ich nicht, welchen von Reichelt ich hier nehmen sollte: den BC337-16 oder -25 oder -40 ???
Ich dachte eigentlich auch, dass der BC547B eine Verstärkung von 200
hat.
Das gilt bei U_CE=5V, steht darüber in der Tabelle ...
Was du suchst, ist die Stromverstärkung /in Sättigung/ bei I_C=100mA. Diese kann man laut den Angaben für U_CE(sat) mit 20 annehmen, dann ist U_CE wohl maximal 0,6V.
Wenn ihr mit jetzt trotzdem dazu raten wollt, bspw. den BC337 für die
gelben LEDs zu nehmen, weiß ich nicht, welchen von Reichelt ich hier
nehmen sollte: den BC337-16 oder -25 oder -40 ???
Am besten BC337-40, der hat die höchste Stromverstärkung.
Für die roten LEDs habe ich nochmals nachgerechnet:
B=20,
Ib = 20 mA / B = 1 mA
Gelernt habe ich, dass man dieses Ergebnis min. * 5 nehmen sollte, also Ib = 5 mA
Rb = (3,3V - 0,7V) / Ib = 520 Ohm -> also deute ich mal, dass ich hier die 1k Ohm Wiederstände nehmen soll, wie von Klaus H. vorgeschlagen. Habe ich das so richtig verstanden?
Ich verstehe leider zu wenig davon. Ich bin zwar gut in Mathe und kann die Gleichung U = R * I anwenden wie auch umstellen, tue mich aber hart die Daten für einen Transistor aus einem Datenblatt richtig zu deuten.
Das Datenblatt gibt für einen Kollektorstrom in der Nähe von 80 mA nicht direkt etwas her, was die Sättigung angeht. Da muss man aus den gegebenen Zahlen interpolieren. Ich würde ebenso B=20 ansetzen und den Basiswiderstand auf 4 mA Basisstrom auslegen.
Welchen Strom kann denn ein GPIO-Pin eines RPi 3+ maximal liefern? Den Spannungseinbruch bei 4 mA, der evtl. nicht zu vernachlässigen sein wird, sollte man ggf. auch einkalkulieren.
Welchen Strom kann denn ein GPIO-Pin eines RPi 3+ maximal liefern? Den
Spannungseinbruch bei 4 mA, der evtl. nicht zu vernachlässigen sein
wird, sollte man ggf. auch einkalkulieren.
einzelner GPIO: max. 16 mA, aber: optimalerweise 3 bis 8 mA und empfohlen 2-3 mA
und alle GPIOs zusammen: max. 50 mA
Ich kann gerade leider kein Datenblatt zum Raspberry 3B+ finden. Eigentlich sollte irgendwo angegeben sein, welche Spannungen die GPIO-Pins bei Ausgangs-High-Pegel und Belastung mit verschiedenen Strömen noch haben.
Ersatzweise habe ich die IO Electrical Characteristics (Datenblatt Abschn. 5.5.3.4.) des RP2040 (Raspberry Pi Pico) angehängt, nur zur Demonstration, nach was man suchen muss. Ich weiß nicht, ob die Werte auch für die „großen“ Raspberries gelten.
Ja, das geht schon in die Richtung, wobei aber U_OH nur bis 2,7 V Betriebsspannung und bei 2 mA Ausgangsstrom spezifiziert ist.
Ich würde also die /Output Drive Strength/ auf 16 mA setzen, dann sollte bei 4 mA der Spannungsabfall hinreichend gering sein. Du kannst es auch einfach ausprobieren und nachmessen.
Ich würde also die Output Drive Strength auf 16 mA setzen
Ich wünsche mir seit dem RPI1 ein Programm welches das Output Drive Strength setting anzeigt, bis jetzt hat es keiner gebaut.
Bedenkt es ist noch nicht vom User zu setzen sondern bestandteil des Kernel und kann mit jedem update verändert werden.
Solange User die Output Drive Strength weder einstellen noch auslesen können bleibe ich bei meiner 3mA Empfehlung!
oder Johannes F. erklärt wie man die setzt und ausliest!
oder Johannes F. erklärt wie man die setzt und ausliest!
Kann ich nicht, ich kenne mich mit dem Raspberry Pi (noch) nicht aus, habe erst seit kurzem einen. Wusste nicht, dass die Konfiguration der GPIOs so schwierig ist. Sorry.
Dann wird das mit den 4 mA, die der TO benötigt, wohl nix ...
Ich würde sowieso zum Gebrauch von FETs an dieser Stelle raten. Manfred hat ja einen passenden Typen genannt. Gibt es allerdings nur als SMD.
Ja, das geht schon in die Richtung, wobei aber U_OH nur bis 2,7 V
Betriebsspannung und bei 2 mA Ausgangsstrom spezifiziert ist.
Ich würde also die /Output Drive Strength/ auf 16 mA setzen, dann sollte
bei 4 mA der Spannungsabfall hinreichend gering sein. Du kannst es auch
einfach ausprobieren und nachmessen.
Oje, die /Output Drive Strength/ muss ich also irgendwie wie hier in der Tabelle https://de.scribd.com/doc/101830961/GPIO-Pads-Control2
aufgeführt am RPi einstellen? Da habe ich 0 Ahnung wie ich das machen soll - aber vermutlich über die Konsole oder über ein Script. Wobei Letzteres aber nicht von mir erwünscht wäre, da diese gelben LEDs später nur über die app RaspController auf HIGH - LOW gesetzt werden. Im Internet habe ich jetzt nichts konkretes gefunden, wie das mit der Drive Strength geht. Da müsste ich wohl ins Raspberry Pi-Forum schreiben.
Und wenn ich den RPi ohne den Output Drive Strength betreibe, leuchten die LEDs nicht mehr so hell wie mit, das habe ich hoffentlich richtig gedeutet?
Und wenn ich den RPi ohne den Output Drive Strength betreibe, leuchten
die LEDs nicht mehr so hell wie mit, das habe ich hoffentlich richtig
gedeutet?
Hmm ... dann könnte es sein, dass der GPIO-Controller des RPi oder/und der Treibertransistor „abrauchen“, weil deren /Safe Operating Area/ verlassen werden könnte (zwischen „ein“ und „aus“ → höherer Spannungsabfall und dadurch höhere Verlustleistung).
Empfehlung: die GPIOs des Raspi mit möglichst wenig Strom (< 3 mA) belasten und MOSFETs als Treiber für die LEDs verwenden.
Ich habe zuvor die gelben LEDs mit 7,2V Spannungsquelle betrieben, damals mit 3 LEDs in Reihe und 68 Ohm Vorwiderstand (Verbraucher also 60 mA). Das ganze 3x parallel mit einem BC547B betrieben und Basiswiderstand 1k Ohm. Damit war ich damals zufrieden, also mit der Helligkeit der LEDs.
Jetzt mal ne blöde Frage von mir als Anfänger:
Machen die 20 mA Differenz für den Transistor wirklich so viel aus?
Jetzt mal ne blöde Frage von mir als Anfänger:
Machen die 20 mA Differenz für den Transistor wirklich so viel aus?
Probier’s doch einfach aus. Bau es auf einem Steckbrett auf und messe die Kollektor-Emitter-Spannung des Transistors; wenn die im Bereich von wenigen 100 mV ist, dann ist alles OK.
Sorry, mir fällt gerade auf, dass ja ZWEI Transistoren an einem GPIO hängen - ich könnte auch damit leben, stattdessen 2 GPIOs zu nehmen. Was meint ihr dazu?
Ich wünsche mir seit dem RPI1 ein Programm welches das Output Drive
Strength setting anzeigt, bis jetzt hat es keiner gebaut.
Bedenkt es ist noch nicht vom User zu setzen sondern bestandteil des
Kernel und kann mit jedem update verändert werden.
Solange User die Output Drive Strength weder einstellen noch auslesen
können bleibe ich bei meiner 3mA Empfehlung!
Ich habe zuvor die gelben LEDs mit 7,2V Spannungsquelle betrieben,
damals mit 3 LEDs in Reihe und 68 Ohm Vorwiderstand (Verbraucher also 60
mA).
Unglückliche Wahl, die zwei Akkus lliefern 8,4 Volt bis 6,0 Volt. Besser nur zwei LEDs. Und aktuelle LEDs besorgen, 20 mA scheint nicht mehr zeitgemäß.
Probier’s doch einfach aus. Bau es auf einem Steckbrett auf und messe
die Kollektor-Emitter-Spannung des Transistors; wenn die im Bereich von
wenigen 100 mV ist, dann ist alles OK.
Unter 200mV wird man U(CE) kaum bekommen. Wenn schon, kann man auch noch die Spannung am µC-Ausgang und über den Basiswiderstand messen.
IRLML6344 wäre ein geeigneter N-FET mit <30mOhm@3,3Volt.
Ist Fummelkram, aber bekommt man auf Lochraster hin. Oder eben per Adapterplatine. Der kleine hat auch kein Problem mit dem Strom, bei 1 Ampere fallen um 30mV ab / 30mW Verlust.
Ich habe zuvor die gelben LEDs mit 7,2V Spannungsquelle betrieben,
damals mit 3 LEDs in Reihe und 68 Ohm Vorwiderstand (Verbraucher also 60
mA).
Unglückliche Wahl, die zwei Akkus lliefern 8,4 Volt bis 6,0 Volt. Besser
nur zwei LEDs. Und aktuelle LEDs besorgen, 20 mA scheint nicht mehr
zeitgemäß.
Ich habe mich hier kurz gefasst und deshalb die 6x 1,2V NiMH AA-Akkus in Reihe "verschwiegen". Aktuelle LEDs? Bei Reichelt gibt es nach wie vor "meine" LED 3-1300 GE. Und die anderen 3mm-LEDs die ich bei Reichelt gesehen habe sind auch nicht besser im Stromverbrauch.
Probier’s doch einfach aus. Bau es auf einem Steckbrett auf und messe
die Kollektor-Emitter-Spannung des Transistors; wenn die im Bereich von
wenigen 100 mV ist, dann ist alles OK.
Unter 200mV wird man U(CE) kaum bekommen. Wenn schon, kann man auch noch
die Spannung am µC-Ausgang und über den Basiswiderstand messen.
Ich habe nicht alle Teile da und muss erst noch welche bestellen...
IRLML6344 wäre ein geeigneter N-FET mit <30mOhm@3,3Volt.
Ist Fummelkram, aber bekommt man auf Lochraster hin. Oder eben per
Adapterplatine. Der kleine hat auch kein Problem mit dem Strom, bei 1
Ampere fallen um 30mV ab / 30mW Verlust.
Das traue ich mir nicht zu mit dem Löten von so kleinen Teilen. :-(
Edit: Vielen Dank bis hierher an alle Mitwirkende!
Unglückliche Wahl, die zwei Akkus lliefern 8,4 Volt bis 6,0 Volt. Besser
nur zwei LEDs. Und aktuelle LEDs besorgen, 20 mA scheint nicht mehr
zeitgemäß.
Ich habe mich hier kurz gefasst und deshalb die 6x 1,2V NiMH AA-Akkus in
Reihe "verschwiegen".
Auch nicht besser: Wenn Du von NiMH die volle Kapazität nutzen willst, ist der Entladeschluß 1 Volt oder sogar noch drunter. Frisch knackevoll sehe ich 7,8 Volt und Entladescluß bei 5,4 Volt.
Aktuelle LEDs? Bei Reichelt gibt es nach wie vor
"meine" LED 3-1300 GE.
1300mcd bei 50° ist ein ordentlicher Wert.
Und die anderen 3mm-LEDs die ich bei Reichelt
gesehen habe sind auch nicht besser im Stromverbrauch.
LEDs haben keinen 'Stromverbrauch', den Strom bestimmst Du durch Deine Beschaltung. Relevant ist die Intensität, bei Deiner 1300mcd@20mA.
Als Kontrollampen im Haus betreibe ich LEDs unter 5mA. Prüfe, ob Du wirklich 20mA brauchst! Übrigens 150 Ohm, nicht 15 Ohm.
Laut Datenblatt haben Deine LEDs 2..2,4 Volt, die Akkus reichen nicht für drei. Aber gut, zu Anfang hast Du zwei in Reihe, OK und drei nur später im Text erwähnt.
Es ist ziemlich egal, ob nun zwei mit je 30mA oder einer mit 60mA, die
Summe der Basisströme wird nicht geringer.
Das meinte ich nicht. Wenn ein Transistor 4 mA zieht, wird dem GPIO 8 mA
entzogen, es sei denn, ich nehme einen zweiten GPIO.
Du hattest erwähnt, zwei Transistoren an den selben GPIO zu klemmen, darauf habe ich mich bezogen. Je einen pro GPIO ist da besser.
IRLML6344 wäre ein geeigneter N-FET mit <30mOhm@3,3Volt.
Ist Fummelkram, aber bekommt man auf Lochraster hin.
Das traue ich mir nicht zu mit dem Löten von so kleinen Teilen. :-(
Schade. In TO-92 kenne ich keinen FET und der IRF3708 im TO-220 ist schlecht zu bekommen und sehr teuer. Komme nicht auf die Idee, beim Chinamann zu kaufen - da ist ziemlich sicher nicht drin was draufsteht.
https://www.richis-lab.de/Transistoren_FET_IRF3708.htm
Hier noch als Vorschlag eine Kombination aus einem gängigen Logic-Level-FET in TO-220 und einem vorgeschalteten BC547 zur Spannungsverstärkung auf 5 V.
Ist der GPIO-Pin als Eingang konfiguriert (also hochohmig), dann bekommt T1 Basisstrom über R1 und zieht das Gate von T2 auf weit unter dessen Schwellspannung, infolgedessen ist T2 gesperrt.
Wird der GPIO als Ausgang mit Low-Pegel gesetzt, dann zieht er die Basis von T1 gegen Masse (sollte weit unter 0,6 V gehen bei dem geringen Strom von ca. 0,33 mA), damit sperrt T1 und R2 zieht das Gate von T2 auf 5 V, womit T2 leitend wird und die LEDs bestromt werden.