3.3V sind nicht HIGH genug (gelöst)

Hallo,
ich habe so ein Relais an einem ESP32 (GPIO27). Das Relais zieht bei LOW am Dateneingang an.
Leider ist der GPIO nicht HIGH genug (3.3V reichen scheinbar nicht), damit es auch wieder abfällt.
Im Setup setze ich den GPIO auf OUTPUT und LOW

  pinMode(opener_relay.relay_pin, OUTPUT);
  digitalWrite(opener_relay.relay_pin, HIGH);

Das Relais ist immer ON. Ich habe auch schon andere GPIO's probiert.

Gibt es einen Trick, die Spannung am Dateneingang des Relais zu erhöhen, ohne den ESP zu killen?

freddy64:
Gibt es einen Trick, die Spannung am Dateneingang des Relais zu erhöhen, ohne den ESP zu killen?

Ja: Nimm eine Spannung, die hoch genug ist und schalte diese vom ESP aus mit einem Transistor.

Gruß

Gregor

freddy64:
Leider ist der GPIO nicht HIGH genug (3.3V reichen scheinbar nicht), damit es auch wieder abfällt.

Könnte daran liegen:

Details:
Schaltspannung 5V

Wenn man "Ansteuerung mit ... TTL" glauben darf, dann müßten 2,4V als HIGH reichen.

Wie sieht es denn mit dem Strom aus, den die Pins liefern können? Wenn ein ESP die erforderlichen 15-20mA nicht liefern kann, ist der Ausgang vermutlich schon lange durchgebrannt.

Ausgänge am ESP sind OK.
...und nicht ein einziger Transistor in the house :frowning:

Da ist doch schon ein Transistor zur Ansteuerung drauf. Und die 15-20mA beziehen sich auf den Strombedarf von Vcc.
Auszug aus Beschreibung:

Beim Anschluss an einen Raspberry Pi VCC an 5V anschließen und zwischen den IN-Pin und dem GPIO einen 1K Ohm Widerstand setzen!

Hast Du das gemacht? Ansteuerung durch einen Raspi ist im Prinzip dasselbe wie bei einem ESP32.

Hast Du das gemacht? Ansteuerung durch einen Raspi ist im Prinzip dasselbe wie bei eienm ESP32.

Hab 5V von VIN des ESP an VCC des Relais.
ESP GND auf Relais GND
Relais IN in der Luft-> Relais aus.
Relais IN gegen GND -> Relais zieht an.
Relais IN am GPIO -> Relais zieht an und bleibt an, egal welcher Level am GPIO ist.

Sollte der Vorwiderstand auf dem Relais zu hoch sein, dass es unter 5V an IN nicht abschaltet?

Habe eben mal so ein 2-Kanal Relais-Bord mit Optokopplern an den ESP gesteckt.
->funktioniert hervorragend

freddy64:
Relais IN am GPIO -> Relais zieht an und bleibt an, egal welcher Level am GPIO ist.

Hast Du den 1kOhm Widerstand eingebaut? Das steht doch ausdrücklich da, dass es den braucht.

Wozu soll es den Widerstand brauchen?

Raspi Beispiel

freddy64:
Wozu soll es den Widerstand brauchen?

Weil das in der Beschreibung des Relais ausdrücklich drin steht. Das es bei dem im Tutorial funktioniert kann Zufall sein - Exemplarstreuungen.
Ich würde mich eher an die Beschreibung halten. Der Hinweis steht sicher nicht umsonst da.

Da ist aber keine Logik dahinter.
Der Widerstand verringert doch die Spannung an der Basis den Transistors noch weiter.
1k gegen +5V würde die Spannung hochziehen aber wahrscheinlich auch den ESP killen.

Ich habe diesen Tipp in einer Raspi-Relay Anleitung gefunden:

The modification is simple - just replace 1K R2 with a smaller resistor, say 510R.

freddy64:
Da ist aber keine Logik dahinter.
Der Widerstand verringert doch die Spannung an der Basis den Transistors noch weiter.

Kennst Du die Schaltung auf dem Board, dass Du so eine Aussage machen kannst? Hast Du es mit dem Widerstand versucht? Wenn das Relais bei 'IN = Gnd' anzieht, ist es keine einfache Emitterschaltung. Letztendlich dürfte es ein Spannungsteilerverhältnis sein. Und das kann man auch durch einen vorgeschalteten Widerstand beeinflussen, nicht nur indem man einen Widerstand auf dem Board austauscht.

Und hier ist das ganze Übel detailliert beschrieben.
Das Relais ist für Arduino Pegel.
Also Levelshifter oder Transistor dazwischen, damit der IN Pin am Relais auf 5V kommt.

1K Widerstand probiert
->geht nicht

freddy64:
Hab 5V von VIN des ESP an VCC des Relais.
ESP GND auf Relais GND

Hast du mal gemessen welche Spannung da wirklich an der Relaisplatine zwischen VCC und GND anliegt?

Versuch mal eine rote oder grüne LED zwischen Ausgang und IN zu schalten (Kathode zum ESP) . In alternative 2 bis 3 Si Dioden (gleiche Polung)

Grüße Uwe

VCC am Relais sind 4.9V

Hab jetzt einen I2C Levelschifter dazwischen gefummelt.
Was soll ich sagen: Es klickt und klackt, wie es sich gehört. Bei 4.7V am IN des Relais, fällt es ab.
Ist zwar etwas Verschwendung, aber wenn sonst keine Teile da sind, muss das halt so gehen.

Transistorsammlung (300 Stück) habe ich gerade bestellt, damit ich in Zukunft für solche Fälle gerüstet bin.

Ein Level-Shifter ist sicher die sauberste Lösung 8) .

Ansonsten hätte man mal die interne Schaltung des Relaismodul gebraucht um selbst analysieren zu können was geht und was nicht.

Ansonsten hätte man mal die interne Schaltung des Relaismodul gebraucht um selbst analysieren zu können was geht und was nicht.

Während der Fehlersuche bin ich über eine Seite "Beefcake Relay" mit Schaltung gestolpert.
Ich finde die Seite ums verrecken nicht mehr.
Die Schaltung kommt schon soweit hin, nur dass auf meinem Board alle Widerstände 1K haben und es bei LOW aktiv ist.
Ich bin fast grün vor Wut geworden, weil diese Relais an 2 anderen meiner ESP32 Konstruktionen funktionieren.
Kein Wunder, an denen schaltet ist ein PCF8574 die Relais.

Aber egal, die Lösung für diesen Baustein ist: +5V am IN Pin lassen das Relais erst abfallen.
Am Arduino kein Problem, am ESP oder Raspi muss der Pegel hoch genug sein. 3.6V reichen nicht, um das Relais auszuschalten.

Eigentlich müßte es reichen, die Verbindung zu Gnd aufzutrennen. Sonst könnte Strom über die Schutzdioden des Ausgangs fließen und das Relais einschalten. Auf jeden Fall ist dieses Modul nicht TTL-kompatibel, die Beschreibung ist schlicht falsch.