Forum: Mikrocontroller und Digitale Elektronik Arduino Relay-Schaltung für 12V Batterie zum Betrieb eines FAN mit


von dev (Gast)


Lesenswert?

Hallo,

ich arbeite mich grade in Arduino ein und wollte fragen, ob folgende 
Gedanken relativ korrekt sind:

Ich habe einen Arduino Uno. Ziel ist es, einen Regelkreis aufzubauen, 
der die Geschwindigkeit eines FAN auf Basis von Sensor-Informationen und 
Poti etc. pp. steuert. So weit möchte ich aber noch gar nicht gehen. Mir 
geht es zunächst einmal um eine einfache Transistor-Schaltung.

Mein 1,5Watt-FAN will mit 12V betrieben werden und wird sicher auch mehr 
als die 40mA "fressen" als mit an einem Digital out/PWM Pin des Arduino 
zur Verfügung stehen.

Daher hatte ich, um den FAN in Betrieb zu setzen, an eine Schaltung 
gedacht, die an einem Digital-Out-Port beginnt (Randfrage: Wo schließe 
ich den Miunus-Pol an? Einfach an einen beliebigen GRD-Pin?). Dabei 
setze ich einen Transistor ein der einen anderen Stromkreis 
öffnet/schließt.

Der Stromkreis zur Versorgung des FAN beginnt am Plus-Pol des 12V-Akkus, 
geht zum Transistor, "hinter" dem Transistor haben wir den Plus-Pol des 
FAN anschließend hängt der Minus-Pol des FAN am Minus-Pol des Akku.

Schließt der Transistor per digitalWirte(fanControlPin, HIGH)-Aufruf den 
Stromkreis, sollte der FAN in Gang gesetzt werden. Bei 
digitalWrite(fanControlPin, LOW) sollte der FAN wieder aus schalten. 
fanControlPin referenziert den Digital-Pin, an dem die 
Transistor-Schaltung beginnt.

Hier das Data Sheet von meinem FAN (SUNON GB1205PKV1-8AY.GN):
http://www.farnell.com/datasheets/35129.pdf

Außerdem möchte ich neben an/aus auch die Geschwindigkeit des FAN regeln 
können.

Mein Gedanke war nun: Klasse, der Digital-Pin ist ja schon PWM-fähig! 
Was, wenn ich also einfach in der loop() mit einem variablen Zeitabstand 
z.B. 25ms arbeite und ständig zwischen HIGH und LOW wechsele --- dann 
müsste sich doch durch den dadurch entstehenden kontinuierlichen 
Zeitabstand in der Stromversorgung die Drehgeschwindigkeit des FAN 
gleichmäßig regeln lassen? Der FAN sollte sich dann desto langsamer 
drehen, desto höher der Zeitabstand zwischen den einzelnen HIGH und 
LOW-digitalWrite()-Aufrufen ist. (Wäre dann, wie bei einer LED die per 
PWM-Schaltung ja auch ständig ein/aus geschaltet wird und das Auge 
erkennt sie als heller/dunkler je kleiner/größer der Zeitabstand ist)

Nun meine Fragen:
- Habe ich das soweit richtig verstanden, dass das funktionieren müsste, 
um den FAN mittels Arduino korrekt zu betreiben/schalten?
- Welchen Transistor muss ich verwenden?
- Brauche ich irgendwo noch Vorwiderstände oder ähnliches?
- Oder gibt es vl. noch einen einfachen (ich bin Anfänger!) 
alternativen Weg, der eleganter ist um meine o.g. Ziele zu erreichen?
- Welchen 12V-Akku-Typ verwendet man typischerweise zum Betrieb von 
FAN's? (Ich möchte Arduino später auch über diesen Akku versorgen!)

Vielen vielen Dank schon mal im Voraus!

p.s. Als Softwareentwickler habe ich ein gewisses Grundverständnis und 
die Arduino-Programmierung fällt mir leicht, aber mit Elektronik kenne 
ich mich noch nicht so gut aus. Ich streng mich aber an. Wenn ich das 
hier Stück für Stück auf die Reihe bekomm, möchte ich das ganze Zeug 
gern Open Source veröffentlichen - es soll irgendwann mal eine coole, 
autarke Holzofen-Steuerung werden :-)

LG

von dev (Gast)


Lesenswert?

...ich habe noch etwas gegoogelt und bin dabei auf folgende Spec 
aufmerksam geworden:

http://www.formfactors.org/developer%5Cspecs%5C4_Wire_PWM_Spec.pdf

Bedeutet das, ich kann einen FAN nur per PWM regeln, wenn er einen PWM 
Input hat oder klappt das auch auf meine, zugegeben primitive Art & 
Weise mit dem Transistor?

Ich könnte dann ja den Transistor weiterhin verwenden um AN/AUS zu 
schalten. Für die PWM-Steuerung verwende ich dann einen anderen Digital 
Out/PWM Pin vom Arduino?

Irgendwie wär's aber doch elegant, es in einem Schwung zu regeln...?
(Oder geht das dann zu Lasten der Langlebigkeit von Transistor und FAN)

von Mike M. (mikeii)


Lesenswert?

FAN musst du genauer spezifizieren.
Da gibts mehrere Möglichkeiten die Drehzahl zu regeln

von Hubert G. (hubertg)


Lesenswert?

Hier steht was Grundsätzliches: 
http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

Ob Relais oder FAN ist egal. Es gibt allerdings Fans, z.B. aus PC, die 
mögen PWM nicht.

von Harald W. (wilhelms)


Lesenswert?

Mike Mike schrieb:

> FAN musst du genauer spezifizieren.

Ja, ich bin z.B. ein FAN der dieses Jahr neu in die Bundesliga
kommenden Eintracht Braunschweig. :-)
Gruss
Harald

von dev (Gast)


Lesenswert?

Danke erstmal für eure Antworten :-)

@Mike: Ich hab in meinem Beitrag einen Link zum Datenblatt meines FAN's 
geschrieben. Hier nochmal: http://www.farnell.com/datasheets/35129.pdf

Könnte ich den mit o.g. Plan regeln?

Danke euch!

von Samuel J. (capstrovor)


Lesenswert?

Also zuerst mal glaube ich, dass es in dem Link, den du gepostet hast, 
um die Lautstärke geht, die ein FAN mit 4-Wire PWM bzw. mit einer 3-Wire 
PWM erzeugt (also die meinen dass der FAN bei einem 4er weniger Laut ist 
als bei einem 3er).
Jetzt zu deiner Schaltung:
Die Idee ist schon ganz gut. Also dem Transistor sollte es wegen dem 
dauernden ein und ausschalten nichts tun. Ich bin mir jetzt aber nicht 
ganz sicher ob das für die Batterie so gut ist, da ein Motor immer sehr 
hohe Einschaltspitzen hat. Ich weis jetzt nicht genau ob das auch so 
ist, wenn sich die Felder der Spulen im Motor noch nicht ganz abgebaut 
haben. Wahrscheinlich ist dann die Einschaltspitze etwas niedriger. Aber 
am besten probierst du es einfach aus ;) oder du wartest bis einer 
antwortet der sich besser damit auskennt.
Jetzt zum Transistor:
Am besten du nimmst einen MOSFET. Der benötigt ganz wenig Basisstrom. Du 
musst aber auf den Maximalstrom achten. Dein FAN braucht mit 1.5 W bei 
12V 125mA. Das sollte sogar ein BC547 aushalten (ja ich weis im 
Datenblatt stehen 100mA). Aber wie gesagt der MOSFET braucht halt 
weniger Basisstrom (ich weis jetzt nicht genau wie viel der Arduino 
bringt).
Bei der Batterie weis ich jetzt auch nicht wirklich weiter. Ich hätte 
einfach 2 9V Blöcke in Reihe geschalten (die Alkali-Mangan haben 500mAh) 
und das ganze mit einem Spannungsteiler auf 12V geteilt. Da werden zwar 
die anderen 6V verheitzt aber gut... (du kannst auch 8 1.5V Batterien in 
Reihe schalten, dann kommst du genau auf 12V).
So ich hoffe du kennst dich jetzt besser aus!

lg

von Hubert G. (hubertg)


Lesenswert?

Der Fan lässt sich mit PWM steuern. Über den Ausgang bekommst du die 
Geschwindigkeit zurückgemeldet.

von dev (Gast)


Lesenswert?

@Samuel
Danke Dir, das hilft mir auf jeden Fall schon mal ein Stückchen weiter 
:-)
Der Arduino liefert btw. 5V und max. 40mA am digitalen Ausgangs-Pin.

Ich habe noch ein bischen gelesen und erfahren, dass man wohl sowas 
einsetzen könnte:

http://www.irf.com/product-info/datasheets/data/irf9540.pdf

Für das direkte Durchschalten an einem Digital-Pin 0/5V habe ich 
gelesen, dass man aus - mir unverständlichen Gründen - noch eine 
"Transistorvorstufe" bräuchte.

Kann mich da jemand bitte aufklären? :-)

Vielen Dank!

von Hubert G. (hubertg)


Lesenswert?

Eine Transistorvorstufe (Treiberstufe) ist nur bei großer Schaltleistung 
und hoher PWM-Frequenz (>20kHz) notwendig.

von dev (Gast)


Lesenswert?

Danke Hubert, das hilft mir richtig weiter.

Damit ich die Schaltung mal detaillierter darstellen kann, bin ich noch 
auf der Suche nach einem Programm (das bestenfalls auch unter Mac OS X 
läuft - ich kann aber auch die VM bemühen) womit ich die Schaltung 
zeichnen kann.

Bestenfalls kennt das Programm Arduino Uno, damit ich das einfach 
"wiren" kann. Gibt's da sowas wie Simulation?

Wenn es ein paar Euro kostet, ist das auch kein Weltuntergang.

Vielen Dank!

von Samuel J. (capstrovor)


Lesenswert?

Ja dein gepostetes MOSFET sollte es aushalten ;)
Allerdings ist das schon etwas überdimensioniert :D

von Samuel J. (capstrovor)


Lesenswert?

Also ich kenne jetzt nur ein gutes Simulationsprogramm
Es heißt Altium. Da kannst du auch sehr gut Schaltungen zeichnen, sie 
dann auch, wenn es ein größeres Projekt ist, in ein PCB umwandeln und 
dann eine Platine fertigen lassen. Das kostet aber mehr als nur ein paar 
Euro :D

aber es gibt bestimmt noch andere kostenlose. Google mal

von Samuel J. (capstrovor)


Lesenswert?


von Hubert G. (hubertg)


Lesenswert?

Der von dir angegebene FET würde in deinem Fall zwar sicher 
funktionieren, wenn du aber einmal eine etwas größere Leistung schalten 
willst, hat er sicher Probleme. Es ist kein Logiklevel-FET. Nimm einen 
IRLZ34, der ist besser geeignet.

von dev (Gast)


Lesenswert?

Klasse, vielen Dank für die umfangreiche Hilfe!

Ich habe EAGLE gefunden. Dafür gibts das Arduino Uno PCB-Layout auch als 
Import:

http://arduino.cc/de/uploads/Main/arduino_Uno_Rev3-02-TH.zip

Das werde ich dann mal alles besorgen, Schaltung zeichnen.
Alles auf ein Bread Board bauen und erstmal den FAN mit nem 
Labor-Netzteil und das Arduino Uno per USB versorgen.

Dann bau ich mir das Akku Pack zusammen, messe alles durch, und klemme 
den FAN dann an das Akku-Pack. (Da brauch ich dann vl. noch nen 
Vorwiderstand für etwaige Spannungsspitzen des Akku-Pack, oder?) 
Anschließend klemm ich Arduino ebenfalls an das Akku Pack. (Arduino Uno 
hat nen 12V-Eingang)

Mach ich dann von der Vorgehensweise her soweit alles richtig?

Danke euch & LG!

von Mike M. (mikeii)


Lesenswert?

Es gibt spezielle Mosfets die man direkt an einen Logischen Ausgang 
anschliessen kann, z.B. den IRLU 120N

Du schließt den einfach an deinen Arduino an, dann den Lüfter in Reihe 
mit dem Mosfet in die Stromversorgung.
Und dann sorgst du dafür dass dein Arduino am Ausgangspin ein PWM Signal 
bereitstellt.

Wenn der Akkupack 12V hat und der Arduino einen 12V Eingang hat und auch 
der Lüfter 12V, kannst das einfach anschliessen.

In dem Arduinoprogramm gibt es ja vorgefertigte Beispiele für PWM und 
Analoge Werte einlesen (z.B. für Potis).

Mit einem Steckbrett sollte das schnell machbar sein.

Da kannst sehen wie jemand ein Mosfet auf dem Steckbrett verwendet:

http://www.pretzellogix.com/2011/03/08/exploring-the-netduino-3-building-the-circuit-on-a-breadboard/

Einfach ausprobieren. Das einzige worauf du achten solltest ist, dass 
keine 12V an einem I/O Pin des Arduinos anliegen

von A. H. (dev)


Lesenswert?

Super, danke Dir Mike - Dein Weg klingt ziemlich elegant! :-)
Und klar, 12V am I/O-Port ist dann wohl Ptot ;)

von PittyJ (Gast)


Lesenswert?

Wir haben hier einen Step-Up Wandler gebaut, um die 5V des Arduino auf 
die 12 Volt des Lüfters zu erhöhen. Getestet werden sollen die Lüfter 
selber, und das mit einem kleinen Kästchen, dass man nur am USB-Port 
anschliesst.

Benutzt wird eine kleine Schaltung mit dem Mc34063.
http://www.mikrocontroller.net/articles/MC34063

Da brauchte es dann keinen zusätzlichen 12V Eingang.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.