GPIO 3.3V auf 5V mittels Stepup an Relais

Hallo Zusammen.
Ich habe ein MC der leider nur 3,3V an GPIOs ausgibt. Nun habe ich aber ein 5V Relais, genauer gesagt dieses .
Ich habe aber noch ein MT3608 Step Up Converter da. Diesen habe ich auf 5V am output eingestellt. Aber leider bekomme ich keine Schaltung hin, die das Relais steuern lässt.

Ich hatte den GPIO des MC an den MT3608 VIN+ und den GND des MC an VOUT- des Stepup. Das Relais habe ich mit VCC an den 5V Ausgang des MC und GND mit dem GND vom MC verbunden. VOUT+ des Stepups mit dem IN Pin des Relais wo normalerweise der GPIO angeschlossen werden soll.
Nun dachte ich ich verbinde den VOUT- des Stepups ebenfalls mit dem MC GND aber leider funktioniert das nicht.
Ist die Steuerung des Relais mittels zwischengeschaltetem Stepup überhaupt möglich, wenn ja, was mache ich falsch?

Über Hilfe würde ich mich freuen.

Du kannst keinen GPIO mittels Stepup auf eine höhere Spannu g bringen.
Der GPIO ist keine Spannungsversorgung sondern ein Datenpin.

Mit welcher Spannung betreibst du den das Relaiboard ?
Damit meine ich nicht den Datenpin vom Relaisboard.
Ok, hab gesehen, 5Volt. Das ist ok.

Was passiert, wenn du den Datenpin des Relaisboards auf GND schaltest ?

Mist, ich dachte, dass das geht.

Wenn ich den Signalpin auf GND lege schaltet es (grüne LED geht an) wenn ich den Pin wieder von GND nehme geht die LED aus und der Schalter ist offen

Also bleibt mir nur übrig ein Relais zu kaufen welches bei 3,3V Schaltet oder irgendwas über einen Transistor zu schalten nehme ich an?

Ich würde sagen du brauchst nur ein Level-Shifter. Nix neues Relais.

Aber mach mal Schaltplan, notfalls mit Papier und Bleistift. Und vorallen Dingen, gib mal an welcher MC das ist.

Gruß

Pucki

Ist ein STM32F303RE Nucleo, arbeite aber mit ArduinoIDE der Einfachheit halber.

Ein Levelshifter kostet mich mit Versand am ende aber so viel wie ein 3,3V Relais wenn ich richtig schauen.

Wo willst du den Bestellen. ??

Die Teile kosten nur ein paar Groschen. Und die VK liegen bei meinen Lieblingslieferant bei ca. 3 Euro.

Du brauchst zwar nur ein. Aber ich empfehle dir, falls du mehre Projekte Planst, durchaus mal so 4-5 Stück zu bestellen. Der Grund ist, viele arbeiten mit sehr günstigen ESP32 und die haben alle 3.3 Volt. Viele Teile abr wollen 5 Volt. Ergo. Eine Investion für die Zukunft :wink:

Nachtrag : Vergiss die "üblichen Verdächtigen" beim Thema Arduino + Module.

Gruß

Pucki

wäre der hier ok?

Moin @sala12,

eine grundsätzliche Möglichkeit, höhere Spannungen und Stromstärken mit einem GPIO zu schalten, ist der Einsatz von Transistoren oder eines ULN2003 (oder eines vergleichbaren IC).

Eine ziemlich gute Beschreibung zum Einsatz des ULN2003 findet man u.a. hier

https://www.conrad.de/de/ratgeber/industrie-40/elektronik-bauteile/uln2003.html

Bei entsprechender Beschaltung der integrierten Freilaufdioden kann man auch induktive Lasten direkt schalten, ohne das IC oder den Controller zu gefährden. Das teuerste an der Beschaffung sind vermutlich die Versandkosten ... :slight_smile:

Ob das für Dich die richtige Lösung ist, musst Du selbst entscheiden, aber es ist vielleicht hilfreich für zukünftige Projekte.

Viel Erfolg!
ec2021

P.S.: Ist Dein Relais vom Makershop? Dieses hier?

https://www.makershop.de/module/relais/1-kanal-relais/

Das Modul soll auch für den Raspberry Pi geeignet sein:

image

Deren Pins arbeiten mit 3.3V ...

Dann müsstest Du nur VCC des Relais an 5V, GND an GND und den IN-Pin an den GPIO anschließen. Die Schaltschwelle sollte auch mit 3.3V GPIO erreicht werden.

Allerdings gibt es auch Gegenstimmen:

https://raspberrypi.stackexchange.com/questions/118116/can-you-use-a-5v-relay-module-with-the-pi

Ob die Werbung der Realität entspricht ... ?!?

Weiß nicht ob es an meinem Code liegt, aber das Relais schaltet zwar durch (grüne LED an) wenn ich es zb am PB12 anlege, aber es geht halt nicht aus, aus geht es erst wenn ich den Pin entferne (grüne LED aus). Hier mein Code:

HardwareSerial Serial2(PA15, PA2);
#define LED_PIN PB12


void setup() {
  Serial2.begin(115200); 
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // Schalte den Pin auf HIGH
  digitalWrite(LED_PIN, HIGH);
  Serial2.println("Pin PB12 ist HIGH");
  
  // Warte 5 Sekunde
  delay(5000);
  
  // Schalte den Pin auf LOW
  digitalWrite(LED_PIN, LOW);
  Serial2.println("Pin PB12 ist LOW");
  
  // Warte 5 Sekunden (insgesamt 3 Sekunden Zyklus)
  delay(5000);

}


Dann gib mal genau an welches Relais du hast.

Das würde die Sache vereinfachen. Am besten mit Link.

Gruß
Pucki

Ist im Eingangspost verlinkt. Sollte auch das was @ec2021 verlinkt hat sein

Ja aber der MC nicht.

Hier mal ein Schaltplan für einen ESP32. Da geht das Modul locker auch ohne Level-Shifter.

Gruß

Pucki

Achso pardon falsch verstanden:
Hier das Pinout vom STM

Ja so hab ich das Relais angeschlossen. Nur halt an PB12 den IN vom Relais

Wieder ein Board was ich nicht kenne. Die wachsen wie die Pilze :wink:

Aber was mich misstrauisch macht ist, das da Arduino + Morpho steht.
Ich vermute (ohne Beweise) das du unter einer Arduino-IDE den Pin anders nennen musst.

Welche IDE benutzt du. ??

Davon abgesehen finde ich ein 35 Euro Board etwas überdimensioniert um ein lausiges Relais zu steuern :wink:

Gruß

Pucki

Am Besten, Du verbindest den GPIO mal mit einer LED mit Vorwiderstand (z.B. 220 Ohm) oder Du misst die Spannung mit einem Voltmeter, um sicherzugehen, dass genau dieser Pin auch schaltet ...

P.S. Es scheint ein Mapping für die STM Pins auf "Arduino" zu geben (Seiten 41 und 42):

https://www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf

Allerdings ist der PB12 dort nicht gelistet ...

Ich hab mal PA8 aus der Tabelle genommen. Wenn ich den Code von oben (mit PA8) starte (im Debugger)geht das Relais kurz aus dann wieder an. Aber auf high und low reagiert es nicht.

Eine angeschlossene LED blinkt mit diesem code (also ohne Relais)

Mit PB12 hat die LED nicht geblinkt, aber am Voltmeter hat der Pin mit 3,3V -> 0V -> 3,3V -> ... regiert, so hab ich auch den Stepup eingestellt

Das lässt klar die Vermutung zu das den Relais 3.3 V nicht reichen zum Schalten.

Gruß

Pucki

Ich probiere mal den Level Shifter, wäre der hier korrekt? 5V-3V IIC UART SPI 4 Kanal Logic Level Converter Module Bi-Directiona, 0,29 €

Ich würde eher den anderen nehmen.

Das hier ist einer für den SPI-Bus. Aber es wäre besser wenn jemand hier sich auch dazu außern würde.

Den du ausgewählt hast, funktioniert übrigens hervorragend am SPI-Bus. Davon habe ich mir da nämlich 10 Stk. gekauft. Ich habe nur keine Ahnung ob, der auch an einen Relais klappt und möchte dir keinen falschen Tipp geben.

Testen würde ich den hier.

Oder mein privaten Fachmann vorher fragen. :wink:

Gruß

Pucki

Mit dem gibt es kleines Problem es ist ein I²C Level Shifter.
Mit dem hast dauerhaft 3,3V an dem µC und 5V auf dem Relais, also wen das Relais schaltet mit High im Sketch bleibt dauerhaft an, erst mit Low schaltet der um.

LS

Zuständig für das Verhalten sind die zwei Pull UP Widerstände.