PWM fan controll problems under 95% duty cycle

Discussion in 'General Electronics Chat' started by mcgyvr, Jun 29, 2010.

  1. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Trying to control a 12VDC fan via PWM (via Arduino micro). PWM output to a 1K resistor feeding base of NTE 375 transistor. 12VDC to red fan lead, black fan lead to collector, emitter to ground (diode backwards across fan) .
    Fan runs fine at 95 to 100% duty cycle, but anything less and the fan stalls and seems like it wants to start but doesn't (sort of just wobbles but doesn't spin). You can just hear it buzzing. Any ideas?

    This is the fan
    http://www.newark.com/sunon/kde1204pkvx-ms-af-gn/axial-fan/dp/89K1822
     
  2. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    Your fan is very likely a BLDC (brushless DC) motor. It uses a Hall-effect sensor to switch which coil is conducting. If you apply straight PWM to the motor, it'll get confused.

    You'll need to use a cap across the motor, and a separate inductor (100uH or larger) to your transistor's collector.
    You'll also need a diode across your transistor, or the reverse-EMF may kill it.
    You'll need to PWM it at around 100kHz.
     
  3. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Would this be better. I would like to avoid changing PWM freq.
     
  4. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    That's not going to work. How are you going to get Vgs to 10v?
    (Vgs = voltage on the gate using the source terminal as the reference)
    What IS your PWM frequency?
     
  5. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    I believe dafault PWM on the Arduino is 500hZ. Not positive though as I have found conflicting information.. I source says 500hZ, 1 source says 32Khz..Big difference.. All I want is to control the speed of my fan with the default PWM out of pin9. Why must this be so hard..
    That schematic was taken from a suggestion on the Arduino forum http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1277815328/0#4
     
  6. ifixit

    Distinguished Member

    Nov 20, 2008
    639
    108
    Some fan/motor designs are not intended to be forced to vary there speed.

    Use a simple brushed DC motor then keep in mind that when choosing the PWM frequency you need to consider the motors inductance. I.E. the "on" time needs to be long enough to allow the magnetic field to build up, otherwise you wont get much torque.

    Regards,
    Ifixit
     
  7. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    Sorry, but I don't know what kind of PWM frequencies you can get out of an Arduino; I've never looked at datasheets or program compilers for them. I'll bet that you can find it if you look, though.

    Like IFixit says, a brushed motor would be a lot easier to control with low-speed PWM. DC fans have been brushless for quite a while now; the old-style brushed fans would fail quite frequently due to the brushes wearing out.
     
  8. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Looking for the correct/default PWM frequency now. Would love to have a solution for the fans I already have.
     
  9. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Default PWM frequency is 490 Hz.
    I was suggested to try lowering it to be anywhere in the 20 to 160 Hz range and also to try increasing it "as high as possible". I will try playing with the freq when I get home but am still interested in other solutions.
     
  10. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
  11. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Do you think lowering the freq into the 20 to 160 Hz range will help/solve the issue?
    I'm starting to think a different fan might be a better solution (4 wire with PWM control maybe..)
     
  12. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    The lower the PWM frequency, the larger the inductor that you would need to average the current.
     
  13. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    any other ideas for running these fans or should I just ditch them and go with a 4 wire fan? I'm not really liking the idea of adding a large inductor or any inductor for that matter.

    What about this circuit I found..
     
  14. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Here is a description of the circuit above
    "This circuit is an essentially an inverting amplifier with high output-current capability. This circuit converts the PWM output of IC1 to a DC power supply for the cooling fan. This circuit operates from 12V, IC1 operates at 3.3V and the power-supply voltage for full-speed operation of the fan is 12 V. R3, R2, and R1 provide feedback around the amplifier and voltage gain between the PWM output and fan. Q2′s drain is driven to to assume the corresponding voltage, to accommodate the gain. An effective DC output voltage is produced by capacitors C3 and C1 by filtering the PWM waveform. It produces a small amount of ripple, but it is inaudible and acceptable."
    Might that work with my brushless fan??
     
  15. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    That'll probably work, but the MOSFET will dissipate a good bit of power (ie: get hot) as it is being used as a linear regulator rather than a switching supply. Make certain to use a big heat sink on your MOSFET.
     
  16. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    Thanks for all your help Sgt..
    If you are bored sometime :) ;) I'd love to see what you come up with as a good solution to this problem.
     
  17. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
    I'm just very low in energy today. Sorry 'bout that.
     
  18. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    No problem... Tomorrow is fine ;) You know you want to.
     
  19. mcgyvr

    Thread Starter AAC Fanatic!

    Oct 15, 2009
    4,770
    970
    I'm gonna just use this "digitally selectable LM317" to vary the voltage to the fan. http://forum.allaboutcircuits.com/showthread.php?t=11792
    I've got plenty of digital outs left on the Arduino and really only need 3 or so speeds on my fan. I think this is the best solution for now anyways and simple to implement with parts I already have. Only 2 digital outs should allow 3 fan speeds (different voltages). I'm going to set it up as follows or similar..(dig1=low, dig2=low Vout = 12vdc) (dig1=high, dig2=low Vout=8vdc) (dig1=high dig2=high vout=6vdc)
     
Loading...