Brushless Motor Speed Control

I am trying to control fan speed to a brushless 12v motor using an arduino, however I'm running into problems. I have very little granularity on speed control - it's really hard to tune anything between off and full speed using PWM. I also briefly wired the motor to a potentiometer directly to the 12v supply to see if it would respond to voltage control better, however I didn't seem to have any better luck.

I'm new to arduino, but I have read in a couple places that the PWM frequency can play a problem in motor speed control. Currently, my PWM output must be set at somewhere around 220-255 to even get the motor to begin spinning.

Is there a way I can give more flexibility in speed control? Possibly change the frequency of the PWM?

How many wires is this fan? Only some can be controlled.

It's a 2-wire

Then you really need to vary the supply voltage as an analog voltage, not PWM it, since the
driver on the device has decoupling capacitors.

You could, in theory, PWM it (add some series resistance to limit current into the caps)
at a fairly slow rate 10Hz or something like that, and you need to use a half-bridge to
get a linear response rather than a single switch, as those decoupling caps will just fill
in the gaps.

Perhaps add 10 ohms in series and PWM at 10Hz or a bit lower and see if you can get slower
speeds anyway...

Basically a bldc 2-wire motor cannot be speed controlled - it's not designed to be

That's what I was afraid of. I searched all over for one that specifically said it was PWM controllable. Unfortunately, I couldn't find anything that matched my requirements (12v blower, ~10cfm), so I ordered the closest thing I could find hoping it would work.

Any sources that I may be overlooking?

Hi,
look at this link.

Check that they are really 4 wire, they will give you part numbers to try with your local/usual suppliers.

Tom...... :slight_smile:

Thanks Tom. What I'm looking for is something like this:

However it seems like they are all 2 wire brushless.

Hey,

I'm using DYS 30A ESC. The problem is two of my ESC's are working fine. And I'm currently involved in a quadcopter project without Radio. The other two ESCs are not working unless they are connected to the wireless joystick.

The code i used is,

#include<Servo.h>
Servo m1;

void setup()
{
m1.attach(5);
Serial.begin(9600);
}
void loop()
{
for(int i=60;i<65;i++)
{
m1.write(i);
delay(100);
}
}

The motor arms, then it starts to spin, when it reaches 65 it again starts from 60. This is how I test whether it is running or not. Two of my ESC are not passing this test at all. But when connected to wireless and when the throttle is given High, armed and then changing the throttle makes it working. Kindly help me out.

venkisagunner you should start a new thread for a new question, not try to camp onto
other threads.

And give your thread a descriptive title so its clear what it is about.