12V mit meinem Arduino schalten

Hallo,

ich bastle derzeit gerade an einer Steuerung um ein Magnetventil, dass unter 12V Spannung öffnet, zu schalten.
Nur leider kenne ich mich mit Elektrotechnik wenig aus (bin Programmierer)

Hier mal meinen Aufbau:

(Der Motor in der Skizze ist eigentlich mein Magnetventil)
Die Pins am MOSFET laut Datasheet von links nach rechts: GATE, DRAIN, SOURCE

Mein Problem ist jetzt folgendes:
Ohne Signal vom Arduino habe ich wie erwartet 0V am Magnetventil.
Mit Signal vom Arduino habe ich komischerweise nur 0,4V am Magnetventil (anstatt der von mir erwarteten 12V).

Als MOSFET verwende ich einen IRF640N... Kann es damit funktionieren?

Kann mir jemand erklären was ich da falsch mache?

Viele liebe Grüße

Hallo

wer lesen kann ist klar im Vorteil, aber wenn Du nicht einfach Deine Anfrage hier reingeknallt hättes ohne die Suchfunktion zubenutzen bekommst auch mal ne Antwort, zumal Dein Problem 2 Beiträge unter Deinem gelöst wurde....

zur Sicherheit hier der link lese das bitte doch erst mal und dann stell wieder Deine Fragen

http://arduino.cc/forum/index.php/topic,71447.0.html

Danke für diesen tollen Hinweis!!!
Der Grund warum dieser Thread jetzt da 2 Beiträge unter dem meinen war ist der, dass ich meine frage ursprünglich an diesen Thread (aus dem Jahre 2011) angehängt habe. Leider kam da nur eine Antwort, die sich auf irgendein Kommentar aus dem Jahr 2011 bezogen hat... und nichts mit meiner Frage zu tun hatte.
Deshalb hab ich meine Frage einfach in einen eigenen Thread neu gestellt :wink:

Meine Schaltung ist ident zu der aus diesem Thread... aber bei mir geht es leider nicht...

Wie beschrieben, kommen bei mir, wenn Spannung vom Arduino anliegt, nur 0,4V am Magnetventil an und ich würde mir halt 12 erwarten.

Vielleicht kann mir ja jemand helfen und sagen wo ich was für ein Bauteil vergessen habe :slight_smile:

Danke

Meine Schaltung ist ident zu der aus diesem Thread... aber bei mir geht es leider nicht...

So ganz identisch dann doch nicht. Die Schutzdiode über dem Verbraucher (Motor bzw. Ventil) fehlt und vor allem auch der Widerstand zum MOSFET.

Danke für die Hilfe!!! :slight_smile:

Wie gesagt ich bin elektrotechnisch ein Nackerpatzi!!!! Darum verzeiht mir meine Fragen :slight_smile:

Könntest du mir in meine Grafik einzeichnen wo ich das hingeben muss?
Wie müsste der Widerstand dimensioniert sein?
Auch auf die Gefahr hin dass ich es nicht verstehe... wozu brauche ich den Widerstand?
Wozu benötige ich die Schutzdiode?

Vielen vielen Dank für die Hilfe :slight_smile:

Ich freu mich schon wenn die Hardware das tut was sie soll und ich mich dem Programmieren widmen kann :slight_smile:

Könntest du mir in meine Grafik einzeichnen wo ich das hingeben muss?

Die Schutzdiode muss parallel zum Motor sein, mit dem Pfeil von GND (oder MOSFET) nach +5V.
Der Widerstand muss zwischen den Arduino-Steuerpin und den Gate-Anschluss des MOSFET. Bei der Dimensionierung bin ich auch nicht wirklich erfahren, aber ich denke 1k sollte funktionieren.

wozu brauche ich den Widerstand?

Damit der MOSFET schaltet, muss eine Spannung am Gate anliegen. Der Widerstand begrenzt nun den Strom der durch das Gate nach GND fliesst. Ohne ihn hast Du nur den relativ kleinen Innenwiderstand des MOSFETs, der den Strom (nach dem Ohm'schen Gesetz: I = U / R, wenn R gegen 0 geht, dann wird I sehr gross) begrenzt. Bin kein Spezialist, aber soviel habe ich bis jetzt den anderen abgeschaut :).

Wozu benötige ich die Schutzdiode?

Die Induktivität wirkt wie ein Stromspeicher. Wenn Du den Strom einschaltest, bewirkt das eine Verzögerung (es wird in der Spule gespeichert), beim Ausschalten wird das dann wieder abgegeben. Die Diode schliesst diesen Rückfluss kurz, leitet ihn also unschädlich ab.
Ich hoffe, das war genug einfach gehalten.

1 Like

Danke für die Erklärungen :slight_smile: !!!!

Da ich heute nicht mehr zu meinem Steckbrett will, hab ichs jetzt einfach mal skizziert...

Hab ich das jetzt somit richtig verstanden?

Der Widerstand am Gate des FET`s ist nicht unbedingt notwendig. Ein FET ist dort sehr hochohmig. Der Widerstand wird dann interessant, weil das Gate eine Kapazität ist, also wie ein Kondensator wirkt.

In diesem Fall wird man keinen Widerstand am Gate brauchen.

Das mit der Freilaufdiode ist jedoch recht wichtig. Wie Pylon schon recht bemerkte, sind die Gegeninduktionen von Spulen bei entsprechenden Flanken geradezu Hochspannungsinduktoren, die auch noch entgegen der Stromrichtung wirken. Daher müssen diese abgeblockt werden.

Zu deiner ersten Schaltung @bliblablo, hast Du denn den FET schon mal direkt mit dem Gate an 5Volt gelegt ? Schaltet er dann richtig durch ?

EDIT: Was mich in Deiner Schaltung noch wurmt, ist daß dir rote Linie Masse ist und nicht die Blaue.

Stell Dir jetzt mal den T2 als FET vor. Der Servo ist Dein Magnetventil. (Das ist nur ein abgewandeltes Beispiel aus meinen früheren Zeiten)

Was mich stört ist, dass die Diode anders geschaltet ist als in Realizers Schaltplan.
Sie muss von einem Pin deines Magnetventils zum anderen, d.h. von +9V zum mittleren Bein des IRF640N = grüner Anschluss des Ventils, und der gelbe Anschluss des Ventils wieder an +. Die Kathode (=MarkierungsRing) auf die Plus Seite, damit sie im Normalbetrieb sperrt. ( so wie jetzt auch )

Den Arduino speist du über USB ?

Naja, als ich meinen Beitrag erstellte, inclusive aller Edits, habe ich die Diode von bliblablo garnicht mehr wahrgenommen :wink: Die ist so natürlich vollkommen falsch eingebracht.

Ich würde sagen, wir warten mal auf weitere Reaktionen von bliblablo und sehen dann weiter.

Ist der FET durchgeschaltet wenn an Gate 5 Volt anliegt ? (12 V am Magnetventil) ?
Reicht die Energieversorgung (12V) überhaupt aus um den notwendigen Strom in das Ventil zu treiben ?

Grundlagenforschung:
Das Gate ist bei einem MOSFET gegenüber dem Source duzcg eine Metal Oxid Schicht (MOS) isoliert.
Das stellt einen Kondensator dar. Dieser Kondensator muß geladen werden damit der MOSFET leitet und entladen werden damit er sperrt (Nicht bei allen MOSFET ist es so, jedenfalls beim IRF640N ist es so). Wenn Du am ungeladenen Gate eine Spannung anlegst wird dieses geladen und es fließt kurzzeitig ein hoher Strom der den Ausgang der Ansteuerung (Arduino) kaputtmachen kann. Wenn Du einen Widerstand zwischen Arduino und Gate schaltest begrenzt er den Strom macht aber gleichzeitig daß der Mosfet langsamer zwischen nichtleitenden und leitenden Zustand schaltet. Der Wert des Widerstandes errechnet sich aus Ansteuerungspannung und max Ausgangstrom, also 5V und 40mA = 125Ohm.

Ich würd Dir als Erklärung dieses Dokument nahelegen:
http://www.arduino.cc/playground/Learning/SolenoidTutorial
Du kannst den Mosfet auch direkt ohne Optokoppler ansteuern, einfach Masse Arduino mit -Batterie zusammenschalten und Ausgang über einen 120 Ohm Widerstand an das Gate.

Andere Frage: mit was versorgst Du das Magnetventil?
Welchen Widerstand hat das Magnetventil? (mit Multimeter messen).
Wenn Du das Magnetventil ansteuerst welche Spannung hast Du auf der Spannungsquelle? immernoch 12V oder viele weniger?

Bis auf den Gatewiderstand und die Freilaufdiode antiparalell zum Magnetventil it die erte Schaltung eigentlich richtig.
Hast Du kontrolliert ob auf dem Breadbord die Spannungsversorgungsschienen für masse und +12V ganz verbunden sind oder in der Mitte unterbrochen sind (es gibt beide Modelle)

Grüße Uwe

Vielen vielen lieben dank für eure Hilfe!!! Weiß ich sehr zu schätzen!!!

Wie gesagt, ich kenn mich mit Elektrotechnik wirklich nicht aus. Für mich ist das wie Lego... ich Steck irgendwie Teile zusammen weil ich das so irgendwo gesehen habe und hoffe dass es geht.. und wenn nicht, bin ich ratlos :~
Leider bin ich auch sehr schlecht Schaltpläne zu lesen... deshalb hab ich mit Fritzling auch einfach meinen Aufbau nachgemalen :slight_smile: Sowas verstehe ich dann eher...

Nun zu euren Fragen...

@uwefeld
Ich betreibe mein Magnetventil derzeit mit einer 9V Blockbatterie, weil ich gesehen habe, dass er damit auch schon schaltet...
Ich hab jetzt gerade gemessen... meine Batterie bring ohne Belastung ca 8,5V und wenn ich mein Magnetventil anschließe, liegen noch 6,2V drauf
Der Widerstand vom Magnetventil ist bei 12-14 Ohm... kann das sein? (Hab mein Multimeter auf 2k Widerstandmessung gestellt und da steht dann 0,012-0,014)

@Realizer... ja... ich hab den MOSFET direkt an den Arduino angelegt und dann kam das dabei raus:

Spannung von der Batterie wie gesagt rund 9V
Hinter dem MOSFET wenn mein Arduino ausgeschalten ist bzw. ich den entsprechenden Pin auf LOW habe ist die Spannung die am Magnetventil anliegt wie zu erwarten 0V.
Wenn ich dann meinen Pin auf HIGH setzte, hab ich am Magnetventil eine Spannung von 0,4V Ich verstehe nicht so recht warum nur so wenig?!?

@michael_x
Ja... Der Arduino bekommt seinen Strom über USB

Ich hab jetzt nochmal versucht die Schaltung die ihr mir vorschlägt (zumindest wie ich das interpretiere :wink: ) nachzuzeichnen:

Hier auch noch der Link zu meiner Fritzling Datei mit der ich das gemacht habe... https://dl.dropbox.com/u/809469/Magnetventil.fzz

Vielleicht kann das, was ich bestimmt falsch verstanden habe, jemand von euch korrigieren :slight_smile:

Vielen vielen lieben Dank und ich entschuldige mich nochmals dafür dass ich mich so dumm anstelle :slight_smile:
Wie gesagt... ich bin Softwareentwickler und leider absolut kein Hardware-Mensch :slight_smile:
Ich freu mich schon aufs Programmieren vom Arduino :wink: und der Kommunikationssoftware :slight_smile:

@uwefeld
Ich betreibe mein Magnetventil derzeit mit einer 9V Blockbatterie, weil ich gesehen habe, dass er damit auch schon schaltet...
Ich hab jetzt gerade gemessen... meine Batterie bring ohne Belastung ca 8,5V und wenn ich mein Magnetventil anschließe, liegen noch 6,2V drauf
Der Widerstand vom Magnetventil ist bei 12-14 Ohm... kann das sein? (Hab mein Multimeter auf 2k Widerstandmessung gestellt und da steht dann 0,012-0,014)

Ein 9V Block ohne Belastung und 8,5V ist leer.
Ja, ca 10 Ohm ist ein möglicher Wert.
Mit einer solchen Belastung ist eine 9V Batterie überfordert.
Such Dir ein 12V Netzteil mit mindestens 1,5A.

Grüße Uwe

Ok... dann grab ich mal mein 12V Netzteil aus... :slight_smile:
Aber von der Schaltung her sollte es so funktionieren?

Danke

bliblablo:
Ok... dann grab ich mal mein 12V Netzteil aus... :slight_smile:
Aber von der Schaltung her sollte es so funktionieren?

Danke

Wie gesagt mit Gatewiderstand und Freilafdiode.
Grüße Uwe

Was ich jetzt noch gefunden habe ist das: http://bildr.org/2012/03/rfp30n06le-arduino/

Da ist der Widerstand zwischen GatePin und GND... das wäre ja in meiner Zeichnung noch falsch, oder?

Ich verstehs einfach nicht...
ich hab das ganze jetzt mal am Breadboard aufgebaut:

Und des MOSFET funktioniert glaub ich... Wenn ich auf PIN 13 am Arduino HIGH mache, ist zwischen 1 und 2 ein sehr geringer Widerstand... nicht ganz 0 aber fast.
Wenn ich am PIN 13 am Arduino LOW mache, ist der Widerstand 1
Also würde ich jetzt annehmen, dass die MOSFET Schaltung zumindest mal funktioniert...

Nur was ich jetzt nicht verstehe...

Wenn ich meinen 12V Netzgerät einschalte würde ich davon ausgehen, dass zwischen 3 und 4 keine Spannung anliegt, wenn mein Arduino an PIN 13 keine Spannung hat?!?
Komischerweise ist aber zwischen 3 und 4 immer 12V Spannung...

Mein Magnetventil funktioniert aber an 3 und 4 trotzdem nicht... egal ob das MOSFET am Gate Spannung hat oder nicht...

Wenn ich das Magnetventil direkt an das 12V Netzteil anschließe funktioniert es...

Ich kapier nix mehr :frowning:

Hallo, ich hänge mich hier auch einmal mit hinein :wink:

Versuch den Mosfet mal auf einen anderen Pin als 13 zu legen. Dort ist ja bereits ein 1kOhm Widerstand und eine LED auf dem Arduino angeschlossen.
Hast du vielleicht im Sketch PinMode(x, OUTPUT) vergessen? Das kann schon mal passieren :wink:

Also nach der Schaltung, die du hier gepostet hast 12V mit meinem Arduino schalten - #12 by system - Deutsch - Arduino Forum funktioniert es bei mir mit R=100 Ohm.

Gruß, Alex

Komischerweise ist aber zwischen 3 und 4 immer 12V Spannung...
Mein Magnetventil funktioniert aber an 3 und 4 trotzdem nicht...

Misst du auch 12 V, wenn das Magnetventil ( oder irgendein Widerstand ) zwischen 3 und 4 angeschlossen ist?
Messgeräte sind sehr hochohmig, die messen auch Spannungen die unter Last sofort zusammenbrechen.

Noch ein Versuch: Schalte den MOSFET doch einfach, indem du das Gate über einen Widerstand entweder mit GND oder mit +5V (vom Arduino 5V Pin) verbindest. Wenn so das Ventil nicht schaltet, macht +12V statt +5V am Gate einen Unterschied ?

Wenn ja, ist es ein schwacher Trost, dass dein IRF640N kein echter LogicLevel MOSFET ist.
Lt. Datenblatt
VGS(TH) Min 2.0 Max 4.0 V -> Im schlimmsten Fall passiert bis 4V überhaupt nix !
rDS(ON) Drain to Source On Resistance ( ID = 11A, VGS= 10V ) : 0.1 ? -> definierter Ein-Zustand bei VGS=10 V

Ja, da ist ein Diagramm das zeigt, dass schon bei VGS=4.5V 20A fliessen sollten.

Aber schau dir zum Vergleich LogicLevel MOSFETs an ( z.B. IRL530N )
Die haben definierte rDS(ON) Werte auch für VGS=4V und VGS=5V

nu bekommst auch noch ein Bild von mir zum Nachstecken wie Lego:

der obere Wiederstand hat 100 Ohm der unter 10KOhm

die Spannung sollen 12V sein

MosFet Motor Arduino_Steckplatine.pdf (810 KB)