mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Anfängerfragen: Magnetventil an Raspberry Pi


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Thorben K. (jtoto)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Zunächst einmal möchte ich anmerken, dass ich absoluter Anfänger bin. 
Ich habe Informatik studiert, bin mit Elektrotechnik aber nie richtig 
klar gekommen. Interesse daran habe ich trotzdem. Vielleicht fehlte mir 
bisher einfach die Praxis, um die Hintergründe besser zu verstehen. 
Deswegen jetzt ein erster praktischer Anlauf!

Was möchte ich tun?
Ich möchte ein magnetisches Ventil (12V, normal geschlossen) mit dem 
Raspberry Pi (also per logischem GPIO Ausgang mit 3,3V) öffnen können. 
Das wars. Ich habe viel gelesen und versucht, selbst klar zu kommen. Bei 
jeder "Variable", die ich recherchiere kommen aber gefühlt neue 
Informationen und jetzt bin ich völlig überfordert.

Was weiß ich:
Ich brauche einen Transistor. An die Basis des Transistors kommt der 
logische Ausgang des Raspberries. Schaltet der Ausgang, wird der 
Transistor sich "öffnen" und Strom kann durch das Ventil fließen. Ich 
habe einen Schaltplan angehängt, den ich zusammengebastelt habe.

Schalte ich einen Widerstand zwischen GPIO und Transistor-Basis von 
240Ohm ergibt sich aus
I = U / R => I = 3,3V / 240Ohm = 0,013A

Nun wird überall vom Stromverstärkungsfaktor gesprochen. Ich nehme an 
das ist hFe? Für den Transistor BD137 (willkürlich gewählt, weil ich 
dafür online eine Rechnung gefunden habe) nimmt man offenbar 80 (warum 
auch immer, ich finde in Datenblättern eine Spanne von 40-250...)

Also:

0,013A * 80 = 1,04A, die durch das Ventil fließen würden. Richtig?

Dieses Ventil hier braucht offenbar 1.167A
https://www.amazon.de/dp/B01NBUFFEG/ref=cm_sw_em_r_mt_dp_U_9dgkDbW78HBRS

Würde mein Plan dann funktionieren? Oder müsste ich einen 220Ohm 
Widerstand nehmen (dann käme ich auf ca. 1,2A)? Oder hab ich irgendwas 
komplett falsch gemacht?

Was ich bisher noch gar nicht recherchiert habe, ist, was ich für eine 
Diode brauche... aber das ist vielleicht ein anderes Thema.

Liebe Grüße,
Thorben

Autor: Harald W. (wilhelms)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Thorben K. schrieb:

> Waum auch immer, ich finde in Datenblättern eine Spanne von 40-250...

Weil es eben unterschiedliche Transistoren gibt. Ausserdem handelt
es sich dabei um die Kleinsignal-Stromverstärkung. Für Grosssignal
rechnet man eher mir 30. Auf gut Deutsch: Nimm besser einen FET.
Es sollte allerdings einer "für Logiklevel" sein.

Autor: Thorben K. (jtoto)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, danke. Ich hatte angenommen, dass Transistoren eines Typs (z.B. 
BD137) eine feste Stromverstärkungs-Spanne haben und die 
Stromverstärkung (wie auch immer) variiert. Wenn du sagst "Weil es 
unterschiedliche Transistoren gibt", meinst du dann "Weil es 
unterschiedliche Hersteller/Baureihen sind", oder hat tatsächlich jeder 
einzelne Transistor eine andere Stromverstärkung, die man vorher 
ermitteln muss?

Ich werde mich dann jetzt mal in Sachen FETs belesen und schauen, ob ich 
damit weiter komme... Gefühlt wird meine Suche dadurch nicht 
unkomplizierter :D

Autor: Nur so eine Idee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Thorben K. (jtoto)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal!

Bei der Suche bin ich auf diese Seite hier gestoßen:

https://tutorials-raspberrypi.de/raspberry-pi-relais-schalter-steuern/

Das was dort beschrieben wird, ist ja so ziemlich das, was ich haben 
möchte und es wirkt relativ simpel... 3,3V Stromversorgung + GND 
anschließen, GPIO Pins anschließen und an die Relais den 12V Stromkreis 
samt Magnetventil und Schutzdiode...

Wäre das wirklich so einfach? Und was wären die Nachteile gegenüber 
eines Mosfets?

Liebe Grüße und danke für die bisherigen Antworten,
Thorben

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorben K. schrieb:
> Wäre das wirklich so einfach?

Meine Relais-Board benötigen 5V Spannungsversorgung auch wenn man sie an 
einen Raspberry Pi anschließt, der nur 3,3V Versorgung hat.

Es gibt hier auch Leute, die gar nichts davon halten, denn diese Relais 
Boards sind fast alle eigentlich nur für 5V ausgelegt. Jede 
Zweckentfremdung dieser Art sollte man nur mit Sachverstand tun - oder 
man riskiert Fehlfunktionen bis hin zu kaputtem Raspberry Pi.

Also: Suche Dir lieber ein Relais-Board aus, das ausdrücklich für 3,3V 
ausgelegt ist.

> Und was wären die Nachteile gegenüber eines Mosfets?

Relais schalten langsamer und verschleißen schneller. Was allerdings 
keine Rolle spielt, wenn du im Schnitt weniger als einmal pro Minute 
schalten willst.

Alternativ zu diesen Relais-Boards gibt es auch MOSFET Boards. Aber auch 
hier musst du darauf achten, dass sie für 3,3V geeignet sind. Der 
maximal mögliche Laststrom hängt da nämlich von der Steuerspannung ab.

Autor: Chris D. (myfairtux) (Moderator) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Thorben K. schrieb:
> Hallo nochmal!
>
> Bei der Suche bin ich auf diese Seite hier gestoßen:
>
> https://tutorials-raspberrypi.de/raspberry-pi-relais-schalter-steuern/
>
> Das was dort beschrieben wird, ist ja so ziemlich das, was ich haben
> möchte und es wirkt relativ simpel... 3,3V Stromversorgung + GND
> anschließen, GPIO Pins anschließen und an die Relais den 12V Stromkreis
> samt Magnetventil und Schutzdiode...
>
> Wäre das wirklich so einfach? Und was wären die Nachteile gegenüber
> eines Mosfets?

Man kann nicht schnell schalten und der Relaiskontakt verschleisst je 
nach Last. Aber bei Deiner Anwendung sollte sich das so weit im Rahmen 
halten, dass Du darauf keine Rücksicht nehmen musst (es sei denn, Du 
schaltest halbsekündlich über Monate ;-)

Relais trennen den Lastkreis galvanisch vom Pi, d.h. wenn es beim Ventil 
knallt, dann sollte Dein Pi das gut überstehen. Bei einem einfachen 
Transistor hast Du diesen Schutz nicht!

Wenn die Relaisplatine auch noch Optokoppler zur galvanischen Trennung 
hat, dann ist das noch eine Sicherheitsstufe. Aber dazu müsste man sich 
das Layout der Platine genauer ansehen (Leiterbahnabstände = 
Isolationsabstand). Das ist für 12 V aber eher unwichtig.

Hier bei uns werden grundsätzlich alle Verbindungen eines Pi zur 
Außenwelt über Optokoppler geschickt, so dass ihm nichts passiert, 
selbst wenn dahinter alles abraucht (allerdings arbeiten wir hier auch 
mit 230V/400V).

Also:ja, kannst Du so machen und es ist so einfach :-)

Edit: Und Stefanus' Beitrag beachten. Suche eine Platine für 3,3V 
Ansteuerung.

: Bearbeitet durch Moderator
Autor: U. M. (oeletronika)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
> Thorben K. schrieb:
> Was möchte ich tun?
> Ich möchte ein magnetisches Ventil (12V, normal geschlossen) mit dem
> Raspberry Pi (also per logischem GPIO Ausgang mit 3,3V) öffnen können.
> ... und jetzt bin ich völlig überfordert.
Das scheint erstmal einfach, aber dann gibt es doch eine Unmenge von 
Details, die man leicht übersehen kann.

> Ich brauche einen Transistor. An die Basis des Transistors kommt der
> logische Ausgang des Raspberries.
Bipolar-Transistoren sind stromgesteuerte Bauelemente, deshalb braucht 
es immer eine Strombegrenzung -> Basiswiderstand

> Schaltet der Ausgang, wird der
> Transistor sich "öffnen" und Strom kann durch das Ventil fließen. Ich
> habe einen Schaltplan angehängt, den ich zusammengebastelt habe.
Im Prinzip geht das, aber dann doch nicht wirklich funktionsfähig.

> Schalte ich einen Widerstand zwischen GPIO und Transistor-Basis von
> 240Ohm ergibt sich aus
> I = U / R => I = 3,3V / 240Ohm = 0,013A
Zu optimistisch gerechnet.
Unter Last wird der Ausgang vom Raspi keine 3,3V liefern. Ich rechne mal 
mit ca. 3V. Die Basis-Emitterdiode am Trans. wird mind. ca. 0,7V 
Spannungsabfall verursachen.
Macht am Ende nur 2,3V / 240 Ohm = ca. 10mA

> Nun wird überall vom Stromverstärkungsfaktor gesprochen. Ich nehme an
> das ist h_fe? Für den Transistor BD137 (willkürlich gewählt, weil ich
> dafür online eine Rechnung gefunden habe) nimmt man offenbar 80 (warum
> auch immer, ich finde in Datenblättern eine Spanne von 40-250...)
Da muß du für den Typ, den du hast, die garantierte Stromverstärkung für 
den konkreten Lastrom im Datenblatt suchen.
Die Stromverst. von Bipolartrans. hat eine weite Exemplarsteuung und ist 
auch noch von edlichen Parameter anhängig.
Ein H_fe = 40 für 150mA heißt keinesfalls, dass der auch mit 1A noch 
diese Stromverstärkung hat.
Hier wird bei 0,5A nur noch h_fe = mind. 25 angegeben (bei 1A noch 
mieser)
https://cdn-reichelt.de/documents/datenblatt/A100/BD_139_CDIL.pdf

Dazu kommt, das die Stromverst. für den liniearen Betrieb angegeben 
wird. Du willst aber Schaltbetrieb machen und muß den Transistor dazu 
zuverlässig übersteuern. Da nimmt man noch einen Sicherheitsfaktor 2...3 
hinzu.
Alles in allem ein Elend mit dem BD137, weil du mind. über 50mA 
Basistrom rechnen  müßtest, um auf der sicheren Seite zu sein.
Das kann ein Prozessor an GPIO-Pins aber normal gar nicht leisten.

Du brauchst also entwerder einen Trans. der bei 1A eine deutlich bessere 
Stromverstärkung hat, oder eine 2-stufige Trans.-Schaltung oder einen 
FET, der aber mit gut 3V ausreichend durchsteuern muß bei ca. 1,2 A 
Last.

> Dieses Ventil hier braucht offenbar 1.167A
> https://www.amazon.de/dp/B01NBUFFEG/ref=cm_sw_em_r_mt_dp_U_9dgkDbW78HBRS

> Würde mein Plan dann funktionieren? Oder müsste ich einen 220Ohm
> Widerstand nehmen (dann käme ich auf ca. 1,2A)? Oder hab ich irgendwas
> komplett falsch gemacht?
Wenn der Trans. nicht durchsteuert und im Linearbetrieb hängt, fällt 
viel mehr Spannung U_ce ab und der Trans. wird "verheizt".
Wenn es dann blöde kommt, bekommst du einen Kurzschluß zwischen der Last 
nach dem GPIO-Pin über den Basiswiderstand.
Die 12V über die paar Ohm am GPIO-Pin wird dir aber den Raspi zerstören!
Merke: Wenn etwas gerade so funktioniert, ist das noch nicht wirklich 
gut. Störungen und Ausfälle sollte man berücksichtigen.
Der Raspi und die Treiberschaltung sollten so entkopplet werden, dass 
Ausfälle hinten dran nicht immer gleich das GPIO-Pin beschädigen.

> Was ich bisher noch gar nicht recherchiert habe, ist, was ich für eine
> Diode brauche... aber das ist vielleicht ein anderes Thema.
Ich empfehle eine schnelle Si-Diode für Nensstrom 1A.
Am besten direkt am Spulenstecker mit anklemmen.

Um das Problem zu lösen würde ich eher zu einem FET greifen.
-> Logik-Level mit ausreichend niedriger U_th für 3,3V Pegel geeignet.

Der kann dann mit einem deutlich größeren Gate-Widerstand versehen 
werden (2,2...4,7 kOhm), so dass bei evtl. Ausfall des FET nur ein rel. 
kleiner Strom zum GPIO-Pin hin abfließen kann.

Dazu noch eine Überspannungsschutzbeschaltung am GPIO-Pin mit z.B. mit 2 
kleinen Schottkydioden gegen gnd und +3,3V.
So wie hier gezeigt:
https://www.led-studien.de/wp-content/uploads/2014/06/WS2812protect.png
Gruß Öletronika

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorben K. schrieb:
> ... oder hat tatsächlich jeder einzelne Transistor eine andere
> Stromverstärkung, die man vorher ermitteln muss?

Auch Exemplare eines Types fallen deutlich unterschiedlich aus. Oft 
werden sie nach der Herstellung sogar nach Verstärkung ausgemessen und 
in verschiedene Klassen (A, B, C) eingeteilt.
Schaltungen werden gewöhnlich so dimensioniert, dass man nicht jedes 
Bauelement einzeln selektieren muss, sondern so, dass sie innerhalb der 
vom Hersteller garantierten Bauteiltoleranzen funktionieren.

Autor: U. M. (oeletronika)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
noch was vergessen:

Beachte auch, ob die Schaltung im Ruheszustand bzw. bei Reset und beim 
Booten einen definierten Zustand haben muß.
-> Schaltung evtl. mit Pullup-R oder Pulldown-R ergänzen und bei Pegel 
bei Bedarf negieren.

Weiter oben wurde auch schon einen Schaltung empfohlen mit kleinen 
npn-Trans. und FET. Das hat den Vorteil, dass die Gatespannung mit den 
12V angesteuert werden kann, so dass du keinen speziellen FET (N-Kanal, 
Enhanc.) benötigst.
Gruß Öletronika

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.