PWM Signal wire length

I have a 10A schottkey diode installed. Thanks for the advice

And another thing about DC clamp meters, (I used them at work before retiring 14 yrs ago), I didn't trust their readings below about 20% of full scale, especially with "wacky" waveforms from DC motor controllers.
Newer technology has hopefully improved them.

UNIT-T210E might be OK but in any case my conventional meters only go to 10A and I don't want to risk frying on of those as well as a MOSFET

If your meter are fused, they should be OK, but buy some spare fuses first (from first hand experience.) :grin:

BTW thank you for taking the time to help me, it is much appreciated. This is something I took up after I retired from a totally different field. If you ever want to know about aqueous amino-plast copolymers I am your man :smile:

Ill keep it in mind.
BTW, have you ever connected the fan straight to 12V and measured the amps?

No but as I using a car battery at the moment I will give it a try

Please report back, thanks.

Well it has been a most interesting afternoon and things become a little clearer.

Firstly the fan when conected directly to the car battery draws 20A @12V = 240W !! so the spec quoted of 12V 120W is a gross under estimation.

I did about 20 differnt combinations of frequency and duty but posting them is not really helpful to my conclusions.

A range from 2.0 - 24.0 kHz produced satisfactory air flow (by adjusting duty) when the current draw was 3A-4A at each tested frequency. Which you would expect really.

Passive heat sink temperature varied 35°- 45°C and didn't really correlate to well with frequency, i.e. lower Hz = cooler.

Noise was pretty horrible at the lower frequencies and I could hear it up to 10kHz, higher than that it was not noticable.

At all the frquencies I used the DMM and a clamp meter the amperes correlated very well.

I think one of my heating problems was due to a dying power supply, using the car battery resulted in a significantly lower MOSFET temperature.

The cable length used 12' maximum didn't impact on heating.

I would like to thank everyone who took the time to cotribute to this posting

Keeping in mind my reply about affinity laws (post 52), does the fan have the original blade?

Yes no modifications made to the fan

Final post.

I decided to use an old ATX2 300W PSU to power this project, as it had a few advantages over my original 12V power supply and I had one lying around. I could use the 5V stand bye to power the Arduino and by adding a little code could switch the PSU on or off to supply the 12V to the fan as required. This is my first attempt at a Fritzing diagram, so I hope I wired the diagram correctly to reflect my actual project.

// Greenhouse Fan control Crusty Sneers

#include <PWM.h>
int fan = 9; // the pin that the fan is attached to
int duty = 50;
int32_t frequency = 13000; // frequency in Hz

#include <OneWire.h>
#include <DS18B20.h>

#define ONE_WIRE_BUS 7

OneWire oneWire(ONE_WIRE_BUS);
DS18B20 sensor(&oneWire);
const int in1 = 8;  //PSU 12V supply on

void setup()
{
  Serial.begin(9600);
  InitTimersSafe(); //initialize all timers except for 0, to save time keeping functions
  bool success = SetPinFrequencySafe(fan, frequency);
  if (success) {

    Serial.println("Success");
    sensor.begin();
    pinMode(in1, OUTPUT); // Switch  PSU ON
  }
}

void loop()
{
  sensor.requestTemperatures();

  while (!sensor.isConversionComplete());  // wait until sensor is ready
  float T1 = (sensor.getTempC());

  Serial.print("Temp: ");
  Serial.println(T1);

  if (T1 < 25.0)
  {

    pwmWrite(fan, duty - 50);
    Serial.println("Fan OFF");
    delay(5000);
  }

  if (T1 > 25.0 )
  {

    digitalWrite(in1, HIGH); // starts PSU from standby for 12V fan
    Serial.println("PSU ON");
    delay(5000); // delay for PSU to stabilise
  } else {
    digitalWrite(in1, LOW);
    Serial.println("PSU OFF");

  }

  if (T1 > 25.1 && T1 < 25.3)
  {
    pwmWrite(fan, duty + 77.5); // start fan at higher speed prevent stalling
    Serial.println("Initialising Fan");
    Serial.println("Fan 50%");
    delay(1000); // delay to get fan to speed before regulating
    
  }
  else if (T1 > 25.3 && T1 < 26.1)
  {
    pwmWrite(fan, duty);
    Serial.println("Fan 20%");
    delay(5000);
  }

  else if (T1 > 26.1 && T1 < 27.0)
  {
    pwmWrite(fan, duty + 26.5);
    Serial.println("Fan 30%");
    delay(5000);
  }

  else if (T1 > 27.1 && T1 < 28.0)
  {
    pwmWrite(fan, duty + 52);
    Serial.println("Fan 40%");
    delay(5000);
  }

  if (T1 > 28.1 )
  {
    pwmWrite(fan, duty + 77.5);
    Serial.println("Fan Maximum");
    delay(5000);
  }

}

The Arduino will not turn off the MOSEFT.

We do not need Fritzing, we need a schematic.


An ATX Power Supply probably needs a minimum load on 5v to get the supply to work properly.

I did a "proper" conversion and used a 10 ohm 10W resistor with integral heat sink clamped to the power transistors heat sink. I did try to do a schematic with Fritzing, but I couldn't get my head around the programme. I should have just used a pencil and paper and photographed it, I guess.

Thanks for taking the time to look

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.