Projekt "Lüftersteuerung mit Potentiometer und MOSFET"

In diesem Arduino Projekt bauen wir ein System, mit dem ein Lüfter an- und ausgeschaltet werden kann und dessen Drehzahl wir über ein Potentiometer steuern können.

Du lernst durch das Projekt unter anderem, wie du Pulsweitenmodulation (PWM) mit deinem Arduino einsetzt, wie du mit einem N-Kanal MOSFET einen Verbraucher schalten kannst und warum du bei Lasten, die wie Spulen wirken (z. B. Motoren, nichts anderes ist der Lüfter) eine sogenannte Freilaufdiode in deinen Schaltungen einbauen musst.

Ergänzend zum schriftlichen Tutorial findest du im mittleren Teil und ganz unten auf dieser Seite auch noch die beiden Youtube-Videos zum Projekt.

Was benötigst du für das Projekt?

  1. 1 x Arduino Uno mit Steckbrett + Laptop und USB Typ B Kabel für die Programmierung
  2. 1 x Lüfter (Ich habe einen 8 x 8 cm großen Lüfter mit U = 12 V Spannungsversorgung und P = 1,8 W Leistungsaufnahme verwendet)
  3. 1 x 9 V Blockbatterie (auch ein 12 V Lüfter kann mit 9 V betrieben werden)
  4. 1 x Lüfter- und Batteriehalter (Danke an meinen Kumpel Udo ; ), Download- Link der 3D-Druck Datei)
  5. 1 x mechanischer Schalter (optional, das System funktioniert auch, wenn ihr einfach die Batterie anschließt)
  6. 1 x Potentiometer (Wichtig: Nutzt eine Poti mit einem Widerstand von R = 1 kOhm oder mehr, bei zu niedrigem Widerstand überlastet ihr den genutzten Arduino Pin)
  7. 1 x MOSFET (Ich habe den IRLZ44N verwendet, mehr dazu weiter unten)
  8. 1 x Diode (ganz „normale“ Silizium Kleinsignaldiode, wie sie z. B. in den Arduino Starter Kits enthalten sind)
  9.  1 x LED (die für Steckbretter typischen 5 mm LEDs, Farbe beliebig)
  10. 1 x R = 470 Ohm Widerstand
  11. 1 x R = 220 Ohm Widerstand
  12. 1 x R = 10 kOhm Widerstand
  13. Mehrere Jumperkabel
  14. 2 x Schraubbuchsen für die Kabel von Lüfter und Batterie (optional, könnt ihr auch direkt ins Steckbrett stecken)

Viele der gelisteten Bauelemente sind beispielsweise in einem Arduino Starter Kit enthalten. Das originale Starter Kit von Arduino ist hier zu finden: https://amzn.to/2RJqRRh. Eine günstigere Alternative von Elegoo gibt es hier: https://amzn.to/2FEF6lG.

Die Schaltung zur Lüfteransteuerung

Die Schaltung für dieses Projekt enthält einige spannende und lehrreiche Punkte. Unter diesem Text findet ihr das Schaltbild mit einer schematischen Darstellung des Arduinos. Ganz rechts in der der Schaltung seht ihr die Spannungsquelle. Die Spannungsquelle ist die 9 V Blockbatterie in unserem Projekt. Wenn ihr nun dem Strompfad vom Pluspol ausgehend folgt, gelant ihr zu einem mechanischen Schalter, mit dem man den Stromkreis öffnen und schließen und somit den Lüfter an- und ausschalten kann. Parallel zur restlichen Schaltung ist dann eine LED mit Vorwiderstand (R1) geschaltet. Den R1 könnt ihr wie in diesem Video gezeigt berechnen. Ich habe den Widerstand mit R1 = 470 Ohm höher als benötigt gewählt. Dadurch sparen wir Energie aus der Batterie, da weniger Strom durch diesen Zweig der Schaltung fließt. Das ist für unsere Anwendung in diesem Projekt in Ordnung, da die LED nur anzeigen soll, ob das System angeschaltet ist und daher nur schwach leuchten muss.

Dann kommen wir zum spannenden Teil der Schaltung: Der Motor (= Lüfter) und die parallel dazu geschaltene Diode. Dies ist eine sogenannte Freilaufdiode. Sie verhindert, dass es am MOSFET zu während der Sperrphase einer Überspannung kommt. Der Hintgergrund zu dieser Überspannung ist, dass der Motor wie eine Spule wirkt und den Strom trotz geöffnetem Stromkreises weitertreiben „will“ (Lenzsche Regel). Dadurch entsteht am MOSFET eine hohe Spannung. Diesen Zusammenhang habe ich auch noch einmal ausführlich im Video Teil 1 zum Projekt erklärt, s. unten. Beachtet beim Einbau der Diode, dass diese mit der Anode an der Pluspol-Seite des Stromkreises angeschlossen ist. Wenn der Schalter S geschlossen und der MOSFET durchgeschaltet ist, muss die Diode sperren.

Kommen wir noch zum MOSFET (Metal-Oxide-Semidconductor-Field-Effect-Transistor) Transistor in unserer Erklärung. Hier habe ich den IRLZ44N von Infineon gewählt. Dieser ist ein sogenannter N-Kanal MOSFET. Das ist deshalb wichtig, weil N-Kanal MOSFETs auf diejenige Seite des Verbrauchers angeschlossen werden, die in Richtung Masse (= Ground / GND) zeigt. Genau das ist bei uns der Fall. Außerdem ist der IRLZ44N ein sogenannter „Logic Level“ MOSFET. Das bedeutet, dass er bereits bei einer Spannung von U = 5 V zwischen dem Gate und Source sicher durchgeschaltet ist. Den MOSFET mit den Pins Gate (G), Drain (D) und Source (S) seht ihr rechts in der Abbildung.
 
Im Gate-Pfad des MOSFETs befindet sich der Widerstand R2, welcher der Strombegrenzung dient. Das ist deshalb wichtig, weil zwischen Gate und Source des MOSFETs eine sogenannte parasitäre Kapazität existiert. Dies könnt ihr euch wie einen kleinen Kondensator zwischen Gate und Source vorstellen, wie im Bild rechts unten dargestellt. Diese parasitäre Kapazität C_GS würde ohne den R2 beim Schalten in sehr kurzer Zeit auf- und entladen werden, was zu einem hohen Stromfluss und somit möglicherweise zu einer Überlastung von Pin 9 des Arduinos führen könnte.
 
An Pin 9 wird vom Arduino ein sogenanntes PWM-Signal (Pulsweitenmodulation) ausgegeben. Das ist ein Rechtecksignal mit fester Frequenz, durch das der MOSFET immer an- und ausgeschaltet wird. Damit fließt im Durchschnitt ein je nach Pulsweite größerer oder kleinerer Strom durch den MOSFET und somit durch den Lüfter. Dadurch kann die Drehzahl hoch- oder herunter gesteuert werden. Nun fehlt noch der Widerstand R3 in unser Erklärung. Dies ist ein Pull-Down Widerstand. Er stellt sicher, dass der MOSFET bei einem LOW im PWM Signal auch sicher mit Masse verbunden ist. Würden wir den R3 weglassen, könnte es bei einem LOW des PWM Singales sein, dass kein definiertes Potential am Gate des MOSFET anliegt und wir nicht wissen, ob der MOSFET leitend ist oder nicht. Dies nennt man „floaten“ des Gate Pins. Mehr zu Pull-Down und Pull-Up Widerständen findest du auch in diesem Video.
 
Abschließend gehen wir noch auf das Potentiometer ein. Dieses schließt ihr an den 5 V Output Pin und den Ground Pin des Arduinos an. Den dritten Pin des Potentiometers, der einen einstellbaren Widerstand darstellt, schließen wir an den ANALOG IN Pin A0 des Arduinos an. Hierüber haben wir einen Spannungsteiler geschaffen, bei dem je nach Einstellung des Potis eine variable Spannung am Pin A0 eingelesen wird. Diese Spannung wird durch den Analog-Digital-Wandler im Arduino in ein einen Wert zwischen 0 und 1023 umgerechnet und dann über unseren Programmcode im Arduino am Pin 9 in die entsprechende Pulsweite des PWM Signals umgewandelt.

Der Sketch zum Lüfterprojekt

Der Sketch (also das Programm / die Arduino Software) zu diesem Projekt ist relativ einfach. Ich werde hier die wichtigsten Schritte kurz erläutern. Den vollständigen Sketch findet ihr etwas weiter unten zum Download. Dort sind alle Befehle auch ausführlich per Kommentar erklärt.

  1. Zunächst werden die benötigten Pins (Digitalpin 9 und Analogpin A0) des Arduinos definiert.
  2. Anschließend wird in der einmalig ausgeführten Funktion void setup () der Pin 9 (Gate) als Output definiert und die Datenrate für den seriellen Monitor festgelegt.
  3. In der Hauptschleife void loop () wird zunächst der durch das Poti eingestellte Spannungswert eingelesen (durch analogRead) und anschließend der eingelesene Wert als PWM Signal am Pin9 ausgegeben. Über den seriellen Monitor (rechts oben in der Arduino Oberfläche zu öffnen) wird dann der jeweilige Wert, mit dem der Lüfter angesteuerert wird in Prozent angezeigt.
Abschließend müsst ihr den Arduino nur noch an den Laptop per USB-Kabel anschließen und den Sketch hochladen!

Eine Beschreibung zum Sketch bekommt ihr auch im Video Teil 2 zum Projekt direkt unter diesem Text. Den Sketch könnt ihr hier herunterladen:

Mit den mit ➣ markierten Links kannst du mich unterstützen 🙂 Es handelt sich hierbei um Affiliate-Links. Das heißt ich bekomme eine kleine Aufwandsentschädigung für die Vermittlung. Für dich entstehen natürlich keine zusätzlichen Kosten!