Forum: Analoge Elektronik und Schaltungstechnik Steuerung eines 12V Gehäuselüfters


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Ich würde gerne, wie oben bereits geschrieben, einen Lüfter über einen 
Atmega8 steuern.
Mein Schaltplan sieht dabei wie auf dem Bild aus.
Aber der Lüfter läuft permanent, egal ob Port 0 oder 1 ist.
Bei dem Aufbau auf dem Breathboard habe ich rausgefunden, dass der BC328 
IMMER einschaltet, wenn ich Vcc oder GND anlege, nur wenn ich das Kabel 
"quasi in der Luft" halte, schaltet der Transistor aus.
Wenn ich den Lüfter jetzt jedoch mit den 5V anstelle der 12V betreibe, 
funktioniert alles problemfrei.
Wenn ich den Basiswiderstand erhöhe hat das keinen Einfluss auf den 
Fehler
PS: die Molex-Massen sind galvanisch gekoppelt.

Wäre echt super, wenn ihr mir helfen könntet!

Gruß Michael

: Verschoben durch Admin
von Teo D. (teoderix)


Lesenswert?

Michael schrieb:
> Wäre echt super, wenn ihr mir helfen könntet!

Nein, weil das Ding da oben KEIN Schaltplan ist und somit wesentliche 
Informationen Fehlen!

von GAAST (Gast)


Lesenswert?

Sollte man da nicht einen NPN Transistor verwenden ?

von GAAST (Gast)


Lesenswert?

GAAST schrieb:
> Sollte man da nicht einen NPN Transistor verwenden ?

... und gegen GND schalten.

von Michael (Gast)


Lesenswert?

Teo Derix schrieb:
> Nein, weil das Ding da oben KEIN Schaltplan ist und somit wesentliche
> Informationen Fehlen!

Wow, es ist beeindruckend, wie sehr man in den Foren auf einem Anfänger 
rumhacken kann, anstatt konstruktiv zu beschreiben, was man falsch 
gemacht hat, was man besser machen soll und welche Informationen fehlen.

GAAST schrieb:
> Sollte man da nicht einen NPN Transistor verwenden ?

Danke für die schnelle Antwort.
Inwieweit unterscheiden sich die Transistoren in deren Anwendung?
Ich bin bisher davon ausgegangen, das einer bei 0 und der andere bei 1 
schaltet.

Gruß Michael

von Kai S. (zigzeg)


Lesenswert?

Michael schrieb:
> Ich bin bisher davon ausgegangen, das einer bei 0 und der andere bei 1
> schaltet.

Nein, so einfach ist es nicht. Beide schalten, wenn ein Strom durch die 
Basis fliesst. Es unterscheidet sich, ob der Strom in die Basis herein 
oder herausfliesst.

Bei Dir schaltet der Transistor immer, denn im Vergleich zu 12V sind 
sowohl 5V als auch 0V "low", also schaltet er durch.

Am besten liesst Du Dir mal die Grundlagen von Transistoren durch. Das 
gibt es hundert mal erklärt, und sicher besser als ich es könnte.

Und hier wird übrigens genau erklärt, was Du machen willst:

https://www.mikrocontroller.net/articles/Transistor#Wie_kann_ich_mit_5V_vom_Mikrocontroller_12V_und_mehr_schalten.3F

ZigZeg

: Bearbeitet durch User
von Michael (Gast)


Lesenswert?

Das heißt also, bei einem PNP fließt der Strom durch den Transistor in 
den µC. Deswegen schaltet man ihn quasi mit 0.
Okay, verstanden habe ich auch, dass in meinem Fall beide Signale Low 
sind.

Vielen Dank, Kai!

Ich werde mir das gleich mal zu Gemüte führen.

von Teo D. (teoderix)


Lesenswert?

Michael schrieb:
> Teo Derix schrieb:
>> Nein, weil das Ding da oben KEIN Schaltplan ist und somit wesentliche
>> Informationen Fehlen!
>
> Wow, es ist beeindruckend, wie sehr man in den Foren auf einem Anfänger
> rumhacken kann,

Ubs, Du bist ja extrem zart besaitet :-O

Michael schrieb:
> anstatt konstruktiv zu beschreiben, was man falsch
> gemacht hat,

Und was ist das?

Teo Derix schrieb:
> wesentliche
> Informationen Fehlen!

Das Du überhaupt keine Ahnung hast, ist aus Deinem Post nicht wirklich 
zu erkennen. Rein auf Verdacht, schreib ich keine Romane!

von Harald (Gast)


Angehängte Dateien:

Lesenswert?

Also ich habe mir jetzt mal die Mühe gemacht und einen Schaltplan 
gezeichnet, wie Du Schritt für Schritt zu einer perfekten Ansteuerung 
kommen kannst.

Der PNP (T1) schaltet die +12V zum Lüfter durch, wenn der NPN (T2) vom 
Controller über das Signal FAN_ON angesteuert wird. Leider sind aufgrund 
der unterschiedlichen Potentiale 5V/12V zwei Transistoren erforderlich. 
Natürlich könnte man auch den Lüfter über die Masseleitung schalten und 
ein Transistor sparen, allerdings ist dann das Signal FAN_SPEED als 
Rückmeldung über die Drehzahl nicht mehr zu gebrauchen (wenn man FAN_ON 
taktet).

Wenn Du einen 4-Pin Lüfter verwendest, kannst Du über den Pin 4 mit 
einer 0..100% PWM vom Controller die Drehzahl einstellen. Das kannst Du 
auch in Schritt 2 oder 3 machen, wenn Du dich mit der grundsätzlichen 
Anschaltung vertraut gemacht hast. Normalerweise muss die PWM laut 
Spezifikation 25kHz sein, es funktioniert aber eigentlich immer auch mit 
anderen PWM-Frequenzen, z.B. auch 16kHz.

Versuche, die Lüfter-Drehzahl mittels Takten der Versorgungsspannung zu 
steuern, sind meist nicht von besonderen Erfolg geprägt - schon meist 
überhaupt nicht reproduzierbar. Ich empfehle Dir dafür wärmstens einen 
4-Pin Lüfter. Ansonsten funktioniert die Schaltung mit den 2 
Transistoren und Widerständen auch für 2- oder 3-pin Lüfter.

Ach ja, die Drehzahl-Steuerung bei den 4-pin Lüftern geht meist nicht 
ganz bis 0 runter, auch wenn man PWM=0% anlegt. Falls der Lüfter ganz 
abschalten soll, kann man immer noch per FAN_ON sauber abschalten.

von Harald (Gast)


Lesenswert?

FAN_SPEED gibt die Drehzahl vom Lüfter zurück. Muss man nicht auswerten. 
Wird meist 2x pro Umdrehung vom Lüfter auf Low gezogen - also einfach 
gegen einen Eingang mit aktivierten Pull-Up legen.

von Michael (Gast)


Lesenswert?

Wow, perfekt!

Ich kann doch auch statt dem BC327 auch den BC328 nehmen, oder?
Kann ich auch anstelle eines BC 237 auch einen BC547 nehmen?
Bin angesichts der Tatsache, dass ich heute einen meiner BC328 im 
Wahrsten Sinne des Wortes gesprengt habe, doch etwas umsichtiger mit 
Transistoren geworden.

Da ich auch die Geschwindigkeit des Lüfters ausmessen möchte, wird das 
Einsparen wohl eher nicht in Frage kommen.

Die Drehzahl habe ich bereits ausgelesen, nur das Ansteuern ist noch das 
Problem.

Soweit ich weiß hat der Atmega8 nur einen PWM-Ausgang, oder?
Da ich aber 6-8 steuern möchte, wird das mit dem PWM doch dann eher auf 
mehrere µC hinauslaufen...

Ehrlich gesagt, war genau das mein Ziel :D
Die Drehzahl mithilfe eines IO-Signals zu regeln, da meine Lüfter nur 
3Pins haben und der Atmega nicht über 8 PWM-Pins verfügt.

Danke nochmal für die Mühe!
Gruß Michael

von Harald (Gast)


Lesenswert?

Michael schrieb:
> Ich kann doch auch statt dem BC327 auch den BC328 nehmen, oder?

Ja

> Kann ich auch anstelle eines BC 237 auch einen BC547 nehmen?

Ja

> Da ich auch die Geschwindigkeit des Lüfters ausmessen möchte, wird das
> Einsparen wohl eher nicht in Frage kommen.

Tja, deswegen der Aufwand. Am oberen Transistor macht man zwischen B und 
E am besten noch einen Ableitwiderstand, z.B. 47k oder so.

> Soweit ich weiß hat der Atmega8 nur einen PWM-Ausgang, oder?
> Da ich aber 6-8 steuern möchte, wird das mit dem PWM doch dann eher auf
> mehrere µC hinauslaufen...

Nimm 'nen vernünftigen uC, z.B. STM32 oder LPC. Der Aufwand ist nicht 
höher, glaube es mir (besonders, wenn Du eher Anfänger bist).

> Danke nochmal für die Mühe!

Gern geschehen.

von Harald (Gast)


Lesenswert?

Hier noch die Spezifikation für die 4-pin Lüfter, zum Glück normiert:
http://www.formfactors.org/developer%5Cspecs%5Crev1_2_public.pdf

von Magic S. (magic_smoke)


Lesenswert?

Naja. Wenn er wirklich nur Lüfter steuern will, dann reicht ein AVR 
locker aus. Muß man zwar die PWM in Software machen, sollte aber kein 
Problem sein. HF werden die Lüfter sowieso nicht mögen, die PWM-Frequenz 
ist also eher gering, der AVR wird sich langweilen. Schätzungsweise paar 
hundert Hz, diese Abtastrate reicht sogar um die Drehzahlsignale in 
Software zu erfassen. Man brauch nur genug Pins, zwei pro Lüfter wenn 
man die Drehzahl messen möchte. Da gibts aber auch genug Auswahl, mit 
zwei vollständigen Ports kann man acht Lüfter bedienen. Vielleicht noch 
irgendwas zum Einstellen falls nicht fest programmiert... ein DIP-40 µC 
wie der ATMega16/32 reicht locker.

von Harald (Gast)


Lesenswert?

magic smoke schrieb:
> Naja. Wenn er wirklich nur Lüfter steuern will, dann reicht ein
> AVR locker aus.

Klar reicht das. Kann man machen, muss man aber nicht.

> Muß man zwar die PWM in Software machen, sollte aber
> kein Problem sein. HF werden die Lüfter sowieso nicht mögen, die
> PWM-Frequenz ist also eher gering, der AVR wird sich langweilen.

Vorgabe laut Spec. sind 25 kHz (21..28kHz), wird schon anspruchsvoll. 
Und der macht sonst nichts mehr.


> Schätzungsweise paar hundert Hz, diese Abtastrate reicht sogar um die
> Drehzahlsignale in Software zu erfassen. Man brauch nur genug Pins, zwei
> pro Lüfter wenn man die Drehzahl messen möchte. Da gibts aber auch genug
> Auswahl, mit zwei vollständigen Ports kann man acht Lüfter bedienen.

Da nimmt man einen 32 Bit Capture-Register und liest den Wert quasi 
direkt aus. CPU Last zwei Ints per Umdrehung.



> Vielleicht noch irgendwas zum Einstellen falls nicht fest
> programmiert... ein DIP-40 µC wie der ATMega16/32 reicht locker.

Wer es mag... Warum einfach, wenn es auch kompliziert geht.

von Magic S. (magic_smoke)


Lesenswert?

Ich find einen 32bit Controller für sowas einfach Overkill. Klar, man 
kann auch einen i7-4770k dafür einsetzen und den noch massiv übertakten 
... dann weiß ich auch wozu er 8 Lüfter benötigt.

Bislang sieht es so aus, als wolle er die Lüfter über PWM auf der 
Betriebsspannung regeln, oder hab ich da was übersehen. Klar, wenn er 
den Steuereingang (Pin4) nutzen will, dann wird das bei 25kHz sportlich.

Halte ich aber trotzdem für möglich, wenn man den PWM-Generator nicht 
als Zählschleife mit Vergleichen aufbaut, sondern die Zeiten zwischen 
den einzelnen Schaltaktionen berechnet und in einem einzigen 
Schleifendurchlauf (25kHz Interrupt) abarbeitet. Kann sein, daß dann 
minimale Abweichungen zwischen Soll- und Ist-Wert entstehen, wenn 
Schaltpunkte dicht beieinanderliegen, aber wenn ich das mal grob 
durchrechne, schafft man das mit 16 Mhz. Geringere PWM-Frequenz wäre 
natürlich schöner, die 25kHz erzeugen schon recht viel Overhead.

von Stefan F. (Gast)


Lesenswert?

Diese ständigen Kommentare "nimm besser einen xxx controller" nerven 
langsam.

Wenn der AVR nicht geeignet wäre, dann Ok, aber in diesem Fall ist der 
kleine AVR völlig Ok.

von Harald (Gast)


Lesenswert?

magic smoke schrieb:
> Ich find einen 32bit Controller für sowas einfach Overkill. Klar,
> man kann auch einen i7-4770k dafür einsetzen und den noch massiv
> übertakten ... dann weiß ich auch wozu er 8 Lüfter benötigt.
>

i7 wäre nicht ratsam, da er das Design wesentlich verteuert und 
verkompliziert. Bei einem M0...M3 wird es eher GÜNSTIGER, die Software 
ist ein Klacks und es gibt wenig zu debuggen. Und der Prozessor kann 
noch zu 99% andere Sachen machen.

wichtig:
Entscheidend hier ist NICHT die Prozessorleistung sondern die gescheite 
Peripherie eines solchen Controllers.

Der TE scheint ja eher ein Beginner zu sein, dem braucht man ja nicht 
mehr mit Vorsatz unbedingt obsolete Technologie von anno dazumal 
vorsetzen.

Das ist mein finales Statement zu diesem Beitrag.

von Teo D. (teoderix)


Lesenswert?

@TO
3Pin Lüfter direkt mit PWM anzusteuern, kann ich Dir nicht empfehlen.
Die meisten pfeifen und fipen dann :(
Eine PWM-Frequenz, außerhalb des Hörbereichs , mögen sie auch nicht.

Aus dem PWM sollte man eine Gleichspannung, per RC-Filter, machen.
Da braucht man auch keine so hohe PWM_Frequenz, was den µC entlastet.
Hier mal ein Beispiel, das ich auf die Schnelle gefunden habe:
http://www.postimage.org/image.php?v=aV165CFA

Es wird sich hier sicher jemand finden, der eine passend Schaltung für 
Deine Anwendung, mal einfach so aus dem Ärmel schüttelt :)

von Magic S. (magic_smoke)


Lesenswert?

Hmm, Schaltnetzteil mit geringer PWM-Frequenz wird ziemlich schnell 
unschön groß und schwer.

Was ich probieren würde wäre, was ein solcher (3Pin) Lüfter mit 30..40Hz 
PWM-Frequenz macht.

Plan B wäre eine Regelung komplett ohne PWM und die Trägheit des Lüfters 
ausnutzen.

if (Drehzahl<Soll) {Lüfter an} else {Lüfter aus}

Problematisch ist dann wieder die Erfassung der Drehzahl, die mit 2 
Impulsen pro Umdrehung bei kleinen Drehzahlen erschreckend ungenau wird. 
Da könnte man z.B. die Pulsbreite eines Impulses messen, um brauchbare 
Ergebnisse zu bekommen.

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.