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
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!
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
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
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.
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!
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.
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.
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
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.
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
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.
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.
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.
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.
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.
@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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.