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
...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)
FAN musst du genauer spezifizieren. Da gibts mehrere Möglichkeiten die Drehzahl zu regeln
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.
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
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!
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
Der Fan lässt sich mit PWM steuern. Über den Ausgang bekommst du die Geschwindigkeit zurückgemeldet.
@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!
Eine Transistorvorstufe (Treiberstufe) ist nur bei großer Schaltleistung und hoher PWM-Frequenz (>20kHz) notwendig.
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!
Ja dein gepostetes MOSFET sollte es aushalten ;) Allerdings ist das schon etwas überdimensioniert :D
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
Hier ist eins: http://www.mikrocontroller.net/articles/Schaltungssimulation#LTspice.2FSwitcherCAD sogar unter Mac OS X
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.
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!
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
Super, danke Dir Mike - Dein Weg klingt ziemlich elegant! :-) Und klar, 12V am I/O-Port ist dann wohl Ptot ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.