ESP32 PC Steuerung und Displaybeleuchtung Optokoppler

Hallo zusammen.
Ich möchte gerne einen PC mittels eines ESP32 steuern/messen können, also ein/aus/notausschalten und resetten, zudem Status der Power/Festplatten LED abfragen. Soweit so simpel, der Teil wäre vermutlich mit 4 Optokopplern und entsprechenden Vorwiderständen schnell erledigt.
Leider ist das noch nicht alles und an dem Teil scheitere ich im Moment, einfach weil mir hier das Wissen und die Erfahrung fehlt.
Das ganze soll noch zwei weitere, wichtige Funktionen haben:

  1. Es soll ein Startsound mithilfe eines DFPlayer Mini Clones abgespielt werden (aus einer Sammlung von verschiedenen Konsolen Startsounds)

  2. Der PC ist in einem alten HTPC Gehäuse eingebaut, einem Antec Fusion. Es hat ein Soundgraph Display, das leider ziemlich schrottig zu steuern ist und dessen Display zum Beispiel immer beleuchtet bleibt, auch wenn der PC heruntergefahren ist. Zu diesem Zweck würde ich das Display gerne ebenfalls mithilfe eines Optokopplers ein und ausschalten, ggf sogar via PWM dimmen. Die Inspiration stammt von hier aber ich will das eben nicht mit nem externen Poti machen, sieht doof aus und man müsste dafür ja immer ans Gerät.

Ich Komme gleich zu den Fragen, ich fange mal hinten an:
Steuerung der Displaybeleuchtung:
Ich habe leider keine Ahnung welcher Art die Beleuchtung des Displays ist, ich bin auch nicht sehr vertraut damit. Ich nehme an (hoffe) es sind einfach weiße LEDs. Wie auch immer, zumindest das ein und ausschalten sollte ja möglich sein. Zu diesem Zweck habe ich die Stromversorgung, ähnlich wie in dem verlinkten Beitrag getrennt. Ich habe jedoch nicht vor eine externe Stromversorgung zu nehmen, sondern will die des Displays weiter verwenden (3 Volt anstatt 3,3 Volt). Ich habe die Anodenleitung unterbrochen und würde die ja eigentlich dann an den Optokoppler "Ausgang" hängen. Nur, ich habe auch mal die Stromstärke der Hintergrundbeleuchtung gemessen und bekomme hier 70mA. Das scheint wohl für die meisten Optokoppler zu viel zu sein wie ich auf die Schnelle gelesen habe. Ich dachte dann darüber nach einfach einen Transistor als Schalter nach dem Optokoppler zu setzen, aber genau hier komme ich nicht wirklich weiter. Ich habe zuletzt bei mikrocontroller.net versucht zu verstehen wie das ganze Funktioniert, bzw wie ich Bauteile dimensionieren muss, aber keine Chance.

Fragen:
Welchen Optokoppler sollte ich für mein Projekt auswählen? Am liebsten wäre mir eine "Einer für alles Lösung", also zum schalten des PCs, zum "empfangen" der Power/Festplatten LED Signale und eben ganz wichtig, schalten der Display Hintergrund Beleuchtung. Er müsste also hinreichend schnell für pwm und das "flackern" des Festplatten (naja SSD) zugriffs sein.

Da ich davon ausgehe, das ich die 70 mA des Displays nicht direkt schalten kann muss wohl ein Transistor dazu, aber wie? Und welcher? Ich habe das mal grob skizziert, "Anode 1" meint die Leitung die von der Platine des Displays zum Anschluss Anode führen würde, wenn es einfach direkt angeschlossen wäre. "Anode 2" meint die Leitung, die eben Anode also Beleuchtungsversorgung ist.

Passt das denn so? Also Basis des Transistors an den Emitter des Optokopplers, vor den Kollektor des Optokoppler habe ich überlegt, brauch ich vlt einen Widerstand um das ganze nicht zu "grillen"? (wg den 70 ma). Wenn ja, wie groß muss R1 dann sein? Falls ich die restlichen Widerstände brauche auch hier die Frage wie groß müssten R2 und R3 sein? Falls ich komplett auf dem Holzweg bin, wie sähe denn die korrekte Schaltung aus?

Sonst noch etwas worauf ich achten muss? Kennt jemand vlt dieses Soundgraph Display und kann mir sagen ob ich mit LED Beleuchtung richtig liege, lässt sich das ganze dann also mit PWM evtl dimmen?

Nun zu Teil 1, mit dem DFplayer Clone. Der bereitet zusätzliche Probleme weil a) funktioniert er wohl nur mit 5, nicht aber mit 3,3 Volt Eingangsspannung b) scheint die Stromversorgung des ESP32 (beide Module stammen von AZ Delivery) generell nicht ausreichend zu sein, versorge ich das mp3 Modul mit Strom aus dem 5V Pin kommt es dann und wann zu aussetzern und zumindest die DFMini Library will dann detektiert haben das die SD Karte aus und wieder eingesteckt wurde. Ich habe das ganze dann mal mit einem Breadboard Netzteil bei 5 Volt und common Ground zum ESP getestet, seitdem gibts keine Probleme. Für den späteren Betrieb wollte ich dann halt einfach einen Molexstecker zum PC Netzteil nehmen und da die 5 Volt für den Betrieb des DFPlayers nehmen.

Aber, hier die Frage, führt dann dann die Optokopplerlösung nicht ad absurdum? Wenn ich eine gemeinsame Masse habe (brauche soweit ich weiß) dann ist doch am Ende das ganze Projekt nicht mehr galvanisch getrennt? oder was übersehe ich?

Letzte Bonusfrage: Angenommen ich bekomme meine Fragen soweit beantwortet, das Projekt ginge dann mit 5 Optokopplern an den Start. Zusätzlich möchte ich aber noch 2 RGB LEDs steuern... Haut das noch hin, das wären ja 11 Einzel LEDs. Oder sprenge ich da den Rahmen dessen was der ESP verkraften Kann?

Sorry das ich hier jetzt einen halben Roman geschrieben habe, ich hoffe es wird deutlich was ich vorhabe und wo meine Probleme liegen (abgesehen davon das ich nicht vom Fach bin und erschreckt feststellen muss, das mir noch so einige Grundlagen fehlen)

Dann wäre mei Tipp: Klein anfangen und das Projekt Stück für Stück erweitern.

Zum DFPlayer kann ich sagen, der funktioniert mit 3,3 Volt, sollteaber eine eigene stabile Spannung erhalten, nicht aus dem ESP32 versorgt werden.

Da solltest du die WS1812B nehmen, die gibt es als einzelne Dioden in unterschiedlichen Größen und Bauformen.

Und ja, ein ESP32 schafft das. Evtl. nimmst du einen ESP32-S3, den gibt es gleich mit mehr Flash.

Bei der Schaltung deines Monitors und PCs möchte ich nichts zu sagen, da solltest du dir die Schaltungen des jeweiligen Gerätes genau ansehen, wie dieses geschaltet werden kann.
Mein Tipp: Ohne Kenntnisse kann das sehr schnell schief grhen.

Wie wäre es mit einem kleinen Subminiatur-Reed-Relais, eventuell mit einem kleinen Transistor davor?

Transistor als Schalter (Prinzip)

So ist es gedacht, Ich habe bisher mit dem DFPlayer "rumgespielt" da gibt es ja auch schon einiges zu beachten zudem mit den Möglichkeiten einer Weboberfläche für den ESP. Die Optokopplersteuerung ist bereits die "Erweiterung". Mir fehlt halt Detailwissen zu den Transistoren, ich weiß zwar noch ungefähr wie die so funktionieren, aber ich bin dann leider raus wenn es darum geht Transistorkennlinien zu studieren oder den mit dem HFE wert rauszufinden wo und welchen Widerstand ich hin tun muss. Es wäre sicher nett das zu wissen, aber bei dem Projekt drückt langsam auch ein wenig die Zeit und ich muss damit mal fertig werden. Darum frage ich hier nach, ob vlt. jemand konkret helfen kann.

Ich habe tatsächlich gar nicht erst die 3,3V mit dem Breadboardnetzteil versucht. Mit der Stromversorgung des ESP klappt es jedenfalls nicht bei 3.3V, zumindest nicht bei diesem Clone. Ist aber nicht so dramatisch, wie ich schon schrieb, möchte ich den DFP extern via PC Netzteil versorgen, da weiß ich nun aber nicht, ob dann die Optokoppler noch Sinn machen, soweit ich es verstehe, (und ich bin mir da eben unsicher) würde das dann ja die galvanische Trennung aufheben. (GGF ohnehin schon, da der ESP ja auch via USB vom selben Netzteil versorgt wird?)

Nee, das sollen ganz normale 5mm LED sein, dann eben auch PWM gesteuert. Das reicht, die LED müssen aber halt in die Halterung des Gehäuses passen, außerdem habe ich da noch genügend zur Hand. Mir geht es letztlich um die gesammte Stromaufnahme, Bei zwei RGB LED habe ich da jetzt keine großen Sorgen, zumal der DFPlayer eh extern versorgt wird, aber wenn da noch Optokoppler dazu kommen, weiß ich nicht wieviel ich da übers Gerät jagen werde und darf.

Ich hatte ja nicht gesagt, das ich gar keine Kenntnisse habe, nur das es mir hier und da an Wissen fehlt. Es ist ja auch nicht so, das ähnliches nicht schon zu Hauf gemacht wurde. Nur habe ich halt noch ein paar Besonderheiten am Start. Es geht übrigens auch nicht um das Schalten eines Monitors, sondern um die Hintergrundbeleuchtung eines kleinen Gehäuse Displays, ich dachte das wäre aus dem Link oben hervorgegangen, mein Fehler.
Jedenfalls, Gerade damit nix schief geht, frage ich ja hier nach.

Die APA106 F5 haben 5 mm Durchmesser. Die kann man wie auf einer Kette hintereinander schalten, weil jeder Controller überflüssige Daten an den nächsten weiterreicht. Viele LEDs mit nur einem µC-Pin.

Die LEDs in meinem Avatar sind solche. Nur eine Anregung zur Unterstützung von #2 :wink:

Darüber hatte ich schon nachgedacht, allerdings sehe ich jetzt keinen direkten Vor (oder Nach)-teil zum Optokoppler.
Und danke für den Link, ich meine da war ich auch schonmal gelandet. Leider geht da (für mich verständlich) auch nicht so recht hervor wie ich Basis und Kollektorwiderstand berechne.

Interessante Idee. Behalte ich zumindest mal im Hinterkopf. Allerdings ist die LED Frage ja auch eher die Bonusfrage, zuerst mal müsste der Rest des ganzen irgendwie laufen.

Da du vermutlich zu deinen vielen Steurungen auch GND als Bezugspotential benötigst, ist da eine galvanische (Potential) Trennung nicht nötig.
Natürlich gibt es da Ausnahmen, aber wie ich schon schrieb, da musst du die Schaltungen deiner Geräte genau studieren.
Und es gibt auch Optokoppler, die 100mA oder mehr vertragen.

Wenn Du eine Transistorschaltung berechnen willst, dann benötigst Du eine Spannung, damit durch die Widerstände Strom fließt. Zwischen Anode1 und Anode2 soll aber keine Spannung sein, das widerspricht sich. Hätte man die restliche Schaltung um Anode1 und Anode2 herum, gäbe es eventuell eine Chance, aber irgendwo zwei Kabel herausholen und dann da Elektronik anschließen wollen, da ist ein mechanischer Kontakt einfacher.

Oder ein Optokoppler, der mehr Strom schalten kann, siehe #8.

Mit einem PNP Transistor wird die Schaltung einfacher

Das geht mit jedem bipolar-Transistor. Da du gerne Optokoppler verwendest, kannst du die negative Seite der Beleuchtung trennen und einen NPN (BC337 ist nur ein Beispiel) dazwischen schalten.

           |
     +-----+    +
	 |    -+-
    1k   |   |
     |   |   | Last  70 mA
opto /C  |   |
   ~|     -+-
     \E    |    
     |    / C
	 +---|      BC337
	      \ E
		   |
		   |    -

1k ist auch nur ein grober Schätzwert. (Weniger ist besser, damit der BC337 voll durchschaltet, aber evtl. kommt der opto an seine Grenze)
Wie hoch ist die Spannung zwischen + und - im getrennten und im leuchtenden Zustand?
Zwischen C und E des NPN-Transistors?

Ich danke schonmal allen die bisher geantwortet haben. Hilft weiter. Nachdem ich gestern so gar nicht mehr weiter gekommen bin, habe ich heute mal in meiner Bastelkiste geschaut und siehe da, ich fand 2 4N35 Optokoppler. Ein Blick ins Datenblatt veriet mir, der sollte mit bis zu 100 mA auf der CE Strecke (falls ich hier falsche Terminologie verwende, bitte gerne verbessern) klar kommen, allzu viel mehr verstand ich bis dahin ja nicht wirklich.
Also habe ich mal ein bisschen damit rumgespielt, eine einfache LED Schaltung gebaut, die dann mit 2 getrennten Stromkreisen lief und mit dem Optokoppler geschaltet wurde, soweit so einfach.

Also ran ans Gerät und mal schauen was passiert. Damit vlt klarer wird worum es geht, habe ich ein Bild von der Seite von der ich mich inspirieren lies und die oben verlinkt ist hochgeladen:


In meinem Fall ist jetzt ein Kabel zwischen K(athode) auf der Steuerplatine und K(athode) an der eigentlichen Beleuchtung gelötet, die Leitung Anode ist aufgetrennt.
Zur weiteren Veranschaulichung hab ich dann mit Fritzing rumgespielt, das Ergebnis ist so natürlich Quatsch die LED soll nur den Verbraucher darstellen, aber vlt verdeutlicht es trotzdem in etwa was ich gemacht habe

Die Optoseite ist mit 3,3 V angeschlossen, ein Vorwiderstand 220 Ohm begrenzt die Stromstärke auf 10mA. Auf der Transistorseite ist es so, das "Anode1" (ja, blöd bezeichnet, hoffe man kann mir trotzdem folgen), also die Leitung die von der Steuerplatine weggeht am Kollektor des Optokoppler angeschlossen ist, "Anode2" (die Leitung an der Beleuchtung) hängt am Emitter.

Und siehe da, Die Hintergrundbeleuchtung leuchtete, allerdings sehr viel dunkler. Warum? Nachgemessen und siehe da, 10 mA zwischen Emitter und Anode2. Wieder ein Blick ins Datenblatt, ah, das muss diese ominöse CTR sein, hat hier einen Wert von 100. Also würde das was an Stromstärke an der LED fließt dem entsprechen was zwischen Emitter und "Last" fließen kann? Um das zu überprüfen habe ich den Vorwiderstand durch einen mit 120 Ohm getauscht, das sollten ~ 17 mA sein. Und tatsächlich, auch zwischen Emitter und Anode2 konnte ich nun ~17 mA messen. Yeah.

Daher nun mal ein paar neue Fragen:

Habe ich jetzt tatsächlich ein bisschen mehr Verstanden wie das mit dem Optokoppler funktioniert? Der CTR Wert "bestimmt" wie viel Strom am Emitter fließen kann, weiters aber begrenzt durch den Strom der durch die CE Strecke fließen darf?

Die Schaltung die ich in Fritzing gemacht habe wäre aber soweit in Ordnung, ja? Die Versorgung der Opto LED wird später natürlich der ESP übernehmen, aber ich wollte wirklich erstmal grundsätzlich sehen ob und wie das ganze funktioniert.

Der 4N35 passt ja nun leider nicht. Mehr als vlt 15 mA sollten wahrscheinlich nicht auf der OptoSeite fließen um auch die GPIO Pins des ESP in Sicherheit zu halten.

Also habe ich mir mal den 4N32 angesehen, der hätte auch gleich eine Darlington Schaltung, ich spare dadurch weiteres gebastel mit zusätzlichem Transistor. Die CTR liegt bei 500, wäre also 5x höher als der Strom von der Optoseite, richtig?
Wenn ich das Datenblatt richtig verstehe, wäre IC bei 100 mA, müsste also auch im Toleranzbereich sein?

Also kurz gefragt, kann ich für mein Vorhaben, eine Hintergrundbeleuchtung eines Soundgraph Displays, an welchem unter normalen Umständen eine Spannung von 3 Volt anliegt und ein Strom von 70 mA fließt mit dem 4N32 schalten? (Als Vorwiderstand für die Opto LED würde ich 120 Ohm wählen bei 3.3 V der ESP Gpio Pins, würde das auch passen?)

Zwischenzeitlich habe ich auch mal die Möglichkeit getestet, das Mainboard mit dem 4N35 einzuschalten, das klappt gut, auch wenn ich jetzt natürlich auf Polarität achten muss. Ich würde dann diesen Typen für die restlichen Schaltgeschichten nehmen, es seie denn jemand kann etwas passenderes empfehlen?

current transfer ratio = Gleichstrom-Übertragungsverhältnis

Mich irritiert dort

Forward current | IF | 60 mA

Das wäre für den µC zu viel.

Wenn ich deinem geschreibsel (zu viel Prosa) richtig entnehme (sorry, aber durch deine vielen Ausschweifungen ist das sehr schwer zu lesen), dann möchtest du die +Spannung der Beleuchtung schalten ?
Dafür solltest du besser einen PNP-Optokoppler nehmen. Oder mit dem NPN den GND schalten. Das verringert den Steuerstrom in der Led des Optokopplers.

Ja aber das sind "ABSOLUTE MAXIMUM RATINGS". IF kann und muss ich ja mit einem Vorwiderstand begrenzen. Der 4N32 hat einen CTR von 500%. Also müsste ich bei IF von 20mA einen IC von 100mA erreichen. Oder wo ist mein Denkfehler?

Nö, vermutlich stimmt das schon.

Denkfehler nicht, aber du solltest dir nochmal Gedanken über meine Info in Post #14 machen.

Das habe ich auch in #11 vorgeschlagen.

Ein Optokoppler ist normalerweise kein Signal-Verstärker.
Statt eines Spezial-Optokoppler würde ich eher einen beliebigen Standard-NPN und einen Standard-Optokoppler (und einen Widerstand) verwenden.
Der Darlington-Ausgang beim 4N32 ist ja genau dieselbe Schaltung.
Wenn es mit dem funktioniert, schön für dich. Weniger Bauteile hat auch einen Vorteil.

Ja stimmt, das hatte ich übersehen.
Evtl. geht der TO ja noch auf diese "bessere" Lösung ein.

Weniger Bauteile wären tatsächlich auch nett :wink: Zwischenzeitlich habe ich auch die Kathodenleitung aufgetrennt um die Last vor den Kollektor zu bringen. Warum ich das tue weiß ich allerdings nicht genau, das einzige was ich auf die Schnelle gefunden habe war Polarität und Schaltung zur Last. 100% schlau werde ich daraus nicht, nehme es aber erstmal so hin.

Ich habe dann noch zwei Fragen:

  1. Was genau tut der 1k am Kollektor des Opto und wie hast du den bestimmt? Ich vermute, weil der Transistor ja auch ein Halbleiter ist, dürfte das dazu dienen einen Spannungsabfall für die Basis des NPN herbeizuführen? Sorry wenn die Frage allzudoof ist, ich bin wirklich schon lange lange raus aus dem Thema und kam bisher meist damit durch Schaltungen einfach nachzubauen.

  2. Ich habe in meiner Bastelkiste ein paar BC547. Wenn ich das Datenblatt richtig verstehe, ist da der Ic halt niedriger, liegt bei 100mA bei 200 mA peak, aber zum ausprobieren müsste das gehen oder?

Nachtrag:
Hab deine Schaltung in Fritzing nachgebaut, damit ich es dann einfacher zu stecken habe.


Die LED ist nach wie vor nur Lastplatzhalter. Die Spannung nehme ich jetzt direkt von der Steuerplatine, gemessen waren das 3 Volt, Die Versorgungsspannung der Opto-LED sind 3,3 volt. Passt das soweit?