ich bin etwas länger auf der Suche nach einer Lösung und bin über einige Umwege beim Arduino gelandet. Ein sehr cooles Teil bisher
Was habe ich vor?
Insgesamt sollen 6 Lüfter (siehe Anhang) von allen 6 PWM Pins des Arduino Uno separat und einzeln gesteuert werden.
Ich habe es bisher auf einem Steckboard mit dem TIP120 probiert und bin kläglich gescheitert. Nun weiß ich, dass ich die Versorgungsspannung schalten muss, da das PWM Signal auf dem dritten PIN auch positiv ist. D.h. der N-Channel TIP120 Transistor ist dafür ja gänzlich ungeeignet.
Was lese ich bei den Lüftern raus:
2-5kHz Frequenz (Das scheint mit dem Uno möglich zu sein)
12V Versorgungsspannung (externes 12V Netzteil ist vorhanden und für 6 Lüfter dimensioniert)
Stromaufnahme zwischen 300 und 400 mA
Leistungsaufnahme ca. 3,5W
Was habe ich derzeit im Baukasten?
Arduino Uno
12V Netzteil
TIP120 Transistoren
1N 4001 Gleichrichterdioden
Und zig verschiedene Widerstände
Nun tue ich mir relativ schwer den richtigen P-Channel Transistor (oder sogar MOSFET) zu finden. Möchte ungern nochmals falsch kaufen und würde mich freuen, wenn ich hier etwas unterstützt werde. Brauche ich eigentlich noch was zusätzlich?
P-Kanal ist ein Typ von FET mit dem man die Versorgungsspannung schaltet. Mit einem N-Kanal schaltet man Masse.
Der TIP120 ist ein bipolarer Darlington-Transitor (den man für sowas heute eigentlich nicht mehr verwendet, da an ihm recht viel Spannung abfällt). Da nennt sich das NPN oder PNP
Für N-Kanal sollte es ein Logic-Level FET sein: IRLZ44, IRLU024 oder für kleine Ströme der IRLD024.
Bei P-Kanal ist hier die Auswahl des FETs nicht kritisch, aber du brauchst zusätzlich einen kleinen NPN wie den BC337-40 um die Gate-Spannung auf 12V anzuheben:
Laut Datenblatt sollte da aber ein N-Kanal reichen. Auch der TIP120 sollte gehen, auch wenn er nicht gut ist. Bei Bipolar-Transistoren braucht man aber unbedingt einen Basiswiderstand. Bei FETs ist der für die Funktion nicht notwendig. Man setzt da zwar auch oft einen kleinen Widerstand vor das Gate, aber der dient dazu den Umladestrom der Gate-Kapazität auf einen für den µC verträglichen Wert von 20-40mA zu begrenzen
Ach ja, nochwas: wenn es 2-5 kHz sein muss geht das direkt erst mal nicht. Die Arduino PWM Frequenz liegt standardmäßig je nach Pin nur bei 490 oder 976 Hz. Mit einer kleinen Modifikation läuft es auch schneller: https://playground.arduino.cc/Main/TimerPWMCheatsheet/
Pins 5 und 6 genau in den Bereich zu kommen erfordert aber noch einen weitern Schritt, da der Timer erst mal im Fast PWM Modus ist. Damit er die gleiche Geschwindigkeit wie die anderen Timer hat muss man auf Phase-Correct umschalten (halbiert die Frequenz). Das wird ganz unten erklärt.
Und da du auch da den Prescaler ändern musst, verhalten sich dann auch millis() und delay() anders
laut verlinkten Datenblatt baruchst Du keinene Leistungstransistor sonder es genügt ein allgemeiner Kleinssignal NPN Transistor.
Mit diesem schaltest Du den Steuereingang per PWM-Signal auf Masse.
@Serenifly:
Danke für die ausführliche Beschreibung, vor Allem das mit den Timer hatte ich schon gelesen und in Kauf genommen. Aber der verlinkte Beitrag hilft nochmal sehr.
Also deiner Meinung nach sollte ich einen der 3 nehmen? IRLZ44, IRLU024 oder für kleine Ströme der IRLD024
Ich schaue sie mir an!
@uwefed
Auch dir danke. Nun haue ich mir natürlich mit der Hand auf die Stirn... Der hat ja bipolar im Namen, klar kann man das drehen.
Nun habe ich Base und Emitter gedreht: Base zu GND und PWM Pin 3 mit 1kOhm Widerstand an Emitter.
Hä? Für sowas nimmt man eine ganz normale Emitter- oder Source-Schaltung. So steht es doch in deinem Datenblatt auch auf Seite 4. Der Transistor rechts ist der den den man dazu baut wenn ich das richtig verstehe
"Bipolar" hat nichts mit der Polarität der Anschlüsse zu tun. Das hängt mit der physikalischen Funktion zusammen. Bei diesen Transistoren sind sowohl positive als auch negative Ladungsträger am Stromtransport beteiligt
Wenn man keinen Leistungstransistor braucht verwende einen BC337-40. Da kannst du auch mehr bestellen wenn du was für die Bastelkiste willst. Die kann man oft verwenden.
Leistungstransistoren braucht man wenn man wirklich die Versorgungsspannung direkt schalten muss. Aber dein Lüfter scheint ja etwas intelligent zu sein und hat einiges an interner Elektronik. Da ist das nichts.
Ach ja, nochwas: wenn es 2-5 kHz sein muss geht das direkt erst mal nicht.
Ich schätze mal, dass damit das Tacho Signal gemeint ist. Ein kleines bisschen verstehe ich nicht, warum man für sowas 3 Pin Lüfter nimmt... Erstens garantieren diese keinesfalls, dass man sie mit PWM treiben kann. Ein 4 Pin Lüfter ist dafür gebaut. Alle
combie:
Ich schätze mal, dass damit das Tacho Signal gemeint ist.
Ein kleines bisschen verstehe ich nicht, warum man für sowas 3 Pin Lüfter nimmt...
Erstens garantieren diese keinesfalls, dass man sie mit PWM treiben kann.
Ein 4 Pin Lüfter ist dafür gebaut. Alle
combie, Dieser Lüfter ist anders; er hat einen PWM Eingang und kann in beide Richtungen drehen. Schau Dir mal das Datenblatt aus Anhang des Eröffnungspost an.
@uwefed & combie
Leider habe ich mir die nicht ausgesucht. Die sind hier nun verbaut und nun möchte ich die wenigstens sinnvoll ansteuern.
@Serenifly
ich weiß nicht ob ich dich richtig verstanden habe.
So sieht meine aktuelle Schaltung aus(siehe Anhang). Die tut nun auch das was ich möchte. Auf der PWM Leitung kommt nun eine positive Spannung an, so wie ich es vorhatte und der Lüfter es haben möchte. Aber diese ist bei 100% Duty Cycle bei max. 5V. Fehlt mir da noch eine Verbindung?
Nach dem ich das Datenblatt nun endlich mal studiert habe, mehrfach, muss ich sagen, dass die Informationslage dünn ist.
Allemal gibt es den Vorschlag, im Datenblatt, den auch Uwe hier zeigt.
Dort wird zwischen Fan und Customer unterschieden.
Du bist der Customer.
Dort sieht man einen Transistor, und der ist NICHT an +12V angeschlossen.
Das wäre also eine Verbindung, welche bei dir zu viel, nicht zu wenig, ist.
Dann ist das laut Datenblatt ein OpenKollektor Input.
Diesen muss man dann auch so behandeln!
Er braucht also einen Pullup, nach "interne Referenz"(heißt es im Datenblatt) also an die 5V des Arduino.
Ob der Serien Schutzwiderstand auch nötig ist? Der Kondensator? KA.
Dein Basiswiderstand ist übrigens nicht eingezeichnet. Aber dennoch halte ich ihn für nötig.
Wobei ich den TIP120 auch für den falschen Transistor halte.
combie:
Dann ist das laut Datenblatt ein OpenKollektor Input.
Diesen muss man dann auch so behandeln!
Er braucht also einen Pullup, nach "interne Referenz"(heißt es im Datenblatt) also an die 5V des Arduino.
Ob der Serien Schutzwiderstand auch nötig ist? Der Kondensator? KA.
.....
Aus meiner Sicht sagt uns das Datenblatt, der TO braucht nur den NPN als Steuertransistor zum Arduino.
Da im Datenblatt über den Pullup-Wert nichts steht, sollte schon der Richtige im Lüfter verbaut sein.
Einen Tip120 ist da sicher nicht nötig.
Ich würde es einfach mal mit einem BC337 versuchen.
Leider habe ich über den zu verwendenden Transistor keine Daten gefunden.
Basiswiderstand sollte natürlich verwendet werden.
Richtig!
Die Werte dürften für den Lüfter völlig irrelevant sein.
sollte schon der Richtige im Lüfter verbaut sein.
Einfach mal zwischen PWM Pin und GND messen.
Wenn da irgendwas zwischen 5V und 12V anliegt, besteht Hoffnung.
Oder mit 1K runter ziehen, dann kann man ihn genauer vermessen.
ALso ich habe zwischen PWM Pin und GND im laufenden Betrieb gemessen und dort liegen dann (je nach Richtung des Lüfters) 7V bzw. 12V an.. Bei 9,5V steht er ganz still.
Dieses Verhalten konnte ich auch mit einem Kondensator nachstellen.
HotSystems:
Aus meiner Sicht sagt uns das Datenblatt, der TO braucht nur den NPN als Steuertransistor zum Arduino.
Wie müsste ich es dann verbinden? Kenne nur die Schaltung mit NPN an GND.
Letztlich müsste ich das ja mit dem TIp120 hinbekommen, oder? Und später gegen den BC337-40 austauschen.
ich habe es fix zusammengesteckt wie du es beschrieben hast (siehe Anhang)
Wenn ich nun aber oben das gelbe PWM Kabel mit GND messe, kommt da nichts durch. Messe ich die gelbe Leitung aber mit der roten habe ich fast volle 12V
Ich würde keinen TIP120 verwenden sondern einen einfachen NPN BC-irgendwas Transistor und die zitierte Spannungsmessung als falsch ansehen.
Laut Datemblatt ist ein PWM von 0% bis 100% zulässig und das entspricht nunmal einer geglätteten Spannung von 0V bis Versorgungsspannung (in diesem Fall "innerer Referenz")
die Messung:
ALso ich habe zwischen PWM Pin und GND im laufenden Betrieb gemessen und dort liegen dann (je nach Richtung des Lüfters) 7V bzw. 12V an.. Bei 9,5V steht er ganz still.
ist falsch. Ich erwarte mir eine Spannung von 0V bis 12V.