ESP8266 mit ULN2003 und 12V Relais

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen.

    Ich verzweifle gerade und finde den Fehler nicht. Manchmal hat man ja bekanntlich einen Wurm drin.

    Ich habe einen Aufbau:

    Mit ESP8266 steuere ich ein ULN2003 an, um damit ein 12V Relais anzusteuern.

    Heißt für den ULN: 12V auf COM, Ansteuerung über IN1.

    Aus dem OUT1 kommen aber wirre Werte.

    Schließe ich NUR 1 PGIO an, geht es sogar. Schließe ich den zweiten(oder 3.) an, fällt die Ausgangsspannung so weit ab, dass des Relais nicht mehr schaltet. Es kommen selbst bei einem Anschluss am IC nur Max 2V raus.

    Wenn ich anstatt des ULN 4 NPN (8050) verwendet, geht alles wie ich es möchte.

    Danke für eure Hilfe und Viele Grüße

    Matthias

  • wenn Plus richtig angelegt ist, dann hast du Ausgang und Eingang vertauscht.

    Versehen meinerseits...

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

    Einmal editiert, zuletzt von Bernd666 (11. Januar 2019 um 11:09)

  • wenn Plus richtig angelegt ist, dann hast du Ausgang und Eingang vertauscht.

    Ne, wenn er Plus (COM) richtig angeschlossen hat, also rechts oben = Pin 9, dann ist die Kerbe links in seinem Bild und Inputs/Outputs passen. Aber wie Gnom auch schon erkannt hat, hängt Pin 8 (E) in der Luft, sollte aber mit GND verbunden sein.

    Aber mal völlig was anderes: So wie ich es sehe, hat deine Realisplatine (bitte link oder Datenblatt einfügen) schon einen Treiber drauf. Warum dann den ULN? Nur als LevelShifter?

  • Also.... Danke für die schnellen und vielen Antworten.

    Ja, GND war verbunden. Auf dem Foto leider nich, das war mein Fehler. Derhintergrund warum GND auf dem Bild nicht verbunden ist:

    Setze ich den GPIO auf High, und habe nur einen angeschlossen, funktioniert es! Sobald ich GND verbinde, geht das Relais aus. Daher war das nur eins Versuch.

    Schließe ich zb einen zweiten Eingang am ULN an, Zack, geht das eine Relais aus. Setze ich dann den zweiten Eingang am GPIO auf high, gehen plötzlich beide Relais an.

    Ein Datenblatt von der Relaisplatine hab ich leider nicht, Link ist hier:

    https://www.reichelt.de/entwicklerboar…ch-p242811.html?

    Und ja, ich hatte schon überlegt, die GPIOs direkt an das Relais-Modul anzuschließen. Habe das auch mal gemacht und alles funktioniert. (Genau so wie bei der Nutzung von einzelnen NPN).

    Aber ich frage mich einfach was ich falsch mache. Es sollte ja funktionieren.und es hat auch mal funktioniert. Ich habe den Aufbau dann umgebaut um einen Testlaufbau für die Programmierung zu haben. Jetzt hab ich es programmiert und bin anscheinend zu doof den gleichen Aufbau wieder hin zu bekommen. (Grund für den Testaufbau: bestellt war ein 5V Relais, geliefert wurde ein 12V. Und mit einfachen LEDs zur Anzeige fand ich angenehmer, als die 12V von der Autobatterie für das Relaismodul laufen zu lassen.

  • Nur um das zu klären: Dass der ULN invertiert, ist dir klar? Hast du einen Multimeter, wo du Input und Output mal gegen GND messen kannst? Wenn Pin 8 des ULN floatet (nicht auf definiertem Pegel liegt), ist klar, dass er nicht richtig funktioniert. Den wegzulassen ist keine Option.

  • Moin!

    Ne, wenn er Plus (COM) richtig angeschlossen hat, also rechts oben = Pin 9, dann ist die Kerbe links in seinem Bild und Inputs/Outputs passen. Aber wie Gnom auch schon erkannt hat, hängt Pin 8 (E) in der Luft, sollte aber mit GND verbunden sein.

    Hast recht!

    ICH habe plus und Minus vertauscht.

    Sri

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Ich hatte den ULN2003 so verstanden, dass er den COM zum OUT1 schaltet, wenn IN1 High ist. Ist das falsch

    Ja, das ist falsch. Siehst du im Datenblatt des ULN die Dreieckchen mit Kreis am Ausgang? Das ist das Symbol für ein Verstärker mit Invertierung, dh. Wenn IN1 = High, dann ist der Ausgang low (auf GND). Deine Messungen von oben, sind die jetzt mit korrekt angeschlossenem GND?

  • Datenblatt zum Relaismodul finde ich nicht. Viele dieser Dinger arbeiten mit einer Spannung am Eingang, die über die IN-Pins mit GND verbunden werden muss, um das Relais zu schalten. Der ULN arbeitet als Open Collector. COM dürfte hier nicht belegt sein, wenn ich das richtig verstehe. Wenn du COM an Spannung legst, klappt das nicht (im Zweifel baust du nur einen Kurzschluss, wenn du den ULN ansteuerst). Legst du COM an GND, müssten die Relais ständig durchschalten.

    Invertieren finde ich hier etwas verwirrend. Wenn der Eingang high ist, schaltet der Transistor durch. Die Pins werden auf GND gezogen, insofern low. Wenn am Eingang low liegt, kommt aber am Ausgang keine Spannung. Vielmehr wird eine dort angelegte Spannung (nämlich der Relais-Eingang) nicht auf GND gezogen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (11. Januar 2019 um 11:31)

  • Invertieren finde ich hier etwas verwirrend. Wenn der Eingang high ist, schaltet der Transistor durch. Die Pins werden auf GND gezogen, insofern low. Wenn am Eingang low liegt, kommt aber am Ausgang keine Spannung. Vielmehr wird eine dort angelegte Spannung (nämlich der Relais-Eingang) nicht auf GND gezogen.

    der ULN2003 hat halt nur eine "pull" Endstufe (2 NPNs als Darlington in Emitterschaltung) aber ob wir mit der Info den OP nicht überfordern?

    Wenn er induktive Lasten wie z.B. Relais (und das hat er ja eingangs geschrieben) schalten will, dann muss COM zwingend verwendet werden oder er braucht externe Freilaufdioden. Aber seine Relaiskarte hat ja schon Optokoppler und Darlingtontransistoren somit macht der ULN2003 wenig Sinn

  • Ich stimme dir zu, aber es gibt auch Leute, die behaupten, dass man die Treiberstufen dieser Relaiskarten vom Pi aus nicht auber schalten kann (wegen der 3,3 V). Aber unabhängig davon muss es doch technisch funktionieren.

    Übrigens weiß ich nicht, ob man über COM einen high-Pegel erzeugen kann - denke, das müsste gehen. Allerdings nicht als Push-Stufe mit höheren Strömen - das würde ja bei low dazu führen, dass der Transistor diesen Strom kurzschließt. Wenn überhaupt, geht das nur als mit Pullup-Widerstand für einen Logikpegel. Das würde aber hier nicht klappen, wenn man damit eine LED und einen Optokoppler betreiben wollte.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • aber es gibt auch Leute, die behaupten, dass man die Treiberstufen dieser Relaiskarten vom Pi aus nicht auber schalten kann (wegen der 3,3 V)

    Wir haben leider kein Datenblatt der Relaiskarte aber wenn diese so aufgebaut sind, dass die Anode der Optokoppler LED über Vorwiderstand mit 12V verbunden ist, und die Kathode nach IN1-4 herausgeführt ist, kann es mit einem ESP8266 Ausgang (der nur einen NPN gegen GND intern hat und zuschaltbarer pull-up gegen 3,3V) schon unmöglich sein, den Eingang damit korrekt zu schalten.

    Aber wie gesagt, man bräuchte Datenblatt oder detailliertes Foto des Eingangs

  • Gewöhnlich haben die Dinger zwei Stromkreise - so dass man die Spulen mitt 12V und die Treiber mit 3,3 oder 5 V versorgen kann. 3,3 V ist etwas wenig, weil die Durchlassspannung der grünen Status-LED ca. 2 V ist und die der IR-LED im Optokoppler ca. 1,2 - zusammen also knapp im Bereich von 3,3 V. Dann ist noch ein Widerstand drauf, meist 1K - so dass da nicht mehr viel Strom überbleibt. 0,1 oder 0,2 V /1000 / 0,1-0,2 mA - das reicht dann dem Optokoppler nicht.

    Der ESP läuft doch eh mit 5V wenn ich nciht irre. Da sollte es kein Problem sein.

    Frage: Könnte man es nicht auch am Pi mit 5V betreiben? Die LEDs nehmen ja 3V weg - am Pi kämen doch eh nur maximal 2 V an?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Also das Relaismodul ohne ULN ansteuern funktioniert wunderbar. Die 3,3V reichen völlig aus, da links an den Eingängen bereits DC+ und DC- mit 12V angeschlossen sind.

    Hier, ein näheres Foto habe ich leider gerade noch da, da ich gerade unterwegs bin. Später könnte ich detailliertere Bilder machen.

    Ich nutze die Schaltung um einen Ventilator über Homebridge ansteuern zu können. Ich wollte - weil ich dachte es wäre „sauberer“, nicht direkt vom GPIO in die INs von den Relais gehen.

    Daher hatte ich 4 NPN-Transistoren vorgeschaltet, was alles prima funktioniert hat.

    Im Internet fand ich dann, dass es wohl „schöner“ wäre, die 4 einzelnen Transistoren mit einem ULN2003 zu ersetzen.

    Und ich hatte das angeschlossen und es hatte funktioniert... aber irgendwas hab ich anders gemacht ?

  • Ich verzweifle gerade und finde den Fehler nicht.

    den Fehler?

    also es kommen hier mehrere Sachen zusammen

    Das Modul hat bestückt siehe Bild 12V Relais, aber wer im Netz googelt findet Modulspannung 5V (Es gibt wohl auch Platinen mit 5V Relais bestückt)

    Dein Bild weisst einwandfrei 12V Relas aus, Aufdruck, die brauchen 12V, die Opto Seite braucht aber Modulspannung 5V liest man im Netz.

    Das ist so ein kuddelmuddel, da blickt keiner mehr durch, hast du ein 12V Netzteil dran?

    Speist du die Modulspannung mit 5V?

    Kann man Modul und Relaisspannung trennen, bei üblichen Modulen gibt es dafür Jumper, die sehe ich hier nicht.

    Wir begeben und mangels Schaltplan und brauchbarer Infos hier ziemlich auf Glatteis.

    Die 4 Jumper in high low legen nur fest ob das Relais bei in high oder low schalten soll, bestimmt ja deine Software und der ULN der dreht.

    Das du im Bild GND vergessen hast macht es auch nicht einfacher, wir sehen die Fehler im Bild und später kommst du mit dem Text:

    Ja, GND war verbunden.

    Also Vorschlag zu Güte, mache ein echtes Schaltbild vom GPIO Pinleiste über ULN2003 zur Platine und was in der Platine liegt musst du halt nachzeichnen die Leiterbahnen sind ja meist zu sehen, von wo nach wo gehen sie R, Diode, Optokoppler ist ja alles zu erkennen.

    Oder kaufe eine Platine wo der Schaltplan existiert.

    hier mit dem 5V/12V gewusel ist das schon mal Müll ohne Beschreibung.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Für das Gewusel muss ich mich entschuldigen.

    Ich hatte auch eigentlich ein Modul mit 5V bestellt, Mein Händler hat da falsch geliefert. Daher behelfe ich mir aktuell mit einer 12V Batterie für DC+ und DC-. Der Anbieter hat so eine 12V Version normalerweise gar nicht im Angebot.... sehr seltsam alles.

    Sobald ich wieder zu Hause bin, werde ich mir das noch mal anschauen :)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!