PWM can be used as a voltage divider. Does it divide the current drawn as well?

I have a battery and a motor.

For the battery, it is rated for 3000mAh@12V and the C-rate is 1, which means the max output current is ~3A.
For the motor, it is rated for 3A@3V.

In order to make the motor work properly, I am going to apply voltage from the battery to the motor through PWM with 25% duty cycle and the motor will work like applied with 3V voltage. However, for every high state of the PWM, it is indeed applying 12V to the motor. Does it mean that the motor would actually draw more than 3A? If it is the case, as the battery cannot supply more than 3A, does it mean that I should find a 3000mAh@3V battery and use it without PWM instead of the original one?

Well, I'll give you the 'analog' approach, then we can discuss from there.

  1. When you power a motor, say with 12V, the motor will draw/decide how much current it needs.
  2. It is the impedance of the motor that decides how much current the motor should draw.
  3. The motor windings are essentially an inductor+resistor. As such, they behave as a low-pass filter.
  4. Thus, the current though the coils will likely NOT be PWM, but a smoother waveform.

Now, regarding your specific case:

  1. You should NOT apply the full 12V to your motor, or you'll fry it.
  2. You might be better off to get a 3V battery as I would not 'rely' on the PWM ... if something goes wrong with the PWM, clock or duty cycle, your motor will overheat and fail.

Any others ?

jb63:
Well, I'll give you the 'analog' approach, then we can discuss from there.

  1. When you power a motor, say with 12V, the motor will draw/decide how much current it needs.
  2. Is is the impedance of the motor that decides how much current the motor should draw.
  3. The motor windings are essentially an inductor+resistor. As such, they behave as a low-pass filter.
  4. Thus, the current though the coils will likely NOT be PWM, but a smoother waveform.

Now, regarding your specific case:

  1. You should NOT apply the full 12V to your motor, or you'll fry it.
  2. You might be better off to get a 3V battery as I would not 'rely' on the PWM ... if something goes wrong with the PWM, clock or duty cycle, your motor will overheat and fail.

Any others ?

1 & 2. Yes I agree, but when I apply higher voltage, obviously the motor would draw more current.
3 & 4. How about if the Load is not a motor (i.e. not an inductor)? Then the power applied onto the Load will be in form of a real PWM. Will the Load draw more than 3A in this case?
6. If I want to use same power source for arduino and the Load. Is there any suggestion? i.e. same battery for 3V Load and 5V Arduino. I was thinking of using a 5V supply for Arduino and use a MOSFET with PWM for the 3V Load

Hi mannok,

I agree with jb63's comments 1 to 4 but not the conclusion. The motor is indeed an inductor and the current depends on its inductance as well as its resistance. PWM is AC with a DC offset. The motor's inductance will limit the current. I see no problem with what you are proposing to do but suggest some precautions:

Put a 3A HRC fuse in the lead from the battery, physically located as close to the battery as possible with no other component between the battery and the fuse.
Put a largish capacitor across the battery, maybe 2200μF or something like that, bigger is better (within reason), put it after the fuse close to the transistor driving the motor.
Use a logic level MOSFET as the driver rated for at least 12A.
Put a reverse connected diode across the motor also rated for at least 12A.
Put a current meter in series with one wire to the motor for monitoring.
Start with the lowest level of PWM that you can and slowly increase it to 25%, watching the current.

A motor will withstand too much current for a short period because it is basically a big lump of copper and steel, which is quite robust and takes some time to heat up enough to be damaged.

PerryBebbington:
Hi mannok,

I agree with jb63's comments 1 to 4 but not the conclusion. The motor is indeed an inductor and the current depends on its inductance as well as its resistance. PWM is AC with a DC offset. The motor's inductance will limit the current. I see no problem with what you are proposing to do but suggest some precautions:

Put a 3A HRC fuse in the lead from the battery, physically located as close to the battery as possible with no other component between the battery and the fuse.
Put a largish capacitor across the battery, maybe 2200μF or something like that, bigger is better (within reason), put it after the fuse close to the transistor driving the motor.
Use a logic level MOSFET as the driver rated for at least 12A.
Put a reverse connected diode across the motor also rated for at least 12A.
Put a current meter in series with one wire to the motor for monitoring.
Start with the lowest level of PWM that you can and slowly increase it to 25%, watching the current.

A motor will withstand too much current for a short period because it is basically a big lump of copper and steel, which is quite robust and takes some time to heat up enough to be damaged.

@PerryBebbington, sorry for the late reply.

Since motor is a inductor, it may have some capacitance inside. May I know why should I add extra capacitor into it?

mannok:
@PerryBebbington, sorry for the late reply.
Since motor is a inductor, it may have some capacitance inside. May I know why should I add extra capacitor into it?

I don't understand your question, while inductors have parasitic capacitance this is tiny compared to the inductance. As for me suggesting you add capacitance to the motor I have not suggested that, I have suggested you add it to the battery, more specifically in front of the MOSFET switching the power to the motor. The reason for this capacitor is so the capacitor rather than the battery supplies the current spikes that this set up will cause, smoothing the current that the battery has to supply. If that still doesn't make sense I'll have to produce a schematic for you.

There is some value in putting a 0μ1 capacitor across the motor terminals to reduce electrical noise from the motor.

mannok:
I have a battery and a motor.

For the battery, it is rated for 3000mAh@12V and the C-rate is 1, which means the max output current is ~3A.
For the motor, it is rated for 3A@3V.

In order to make the motor work properly, I am going to apply voltage from the battery to the motor through PWM with 25% duty cycle and the motor will work like applied with 3V voltage. However, for every high state of the PWM, it is indeed applying 12V to the motor. Does it mean that the motor would actually draw more than 3A? If it is the case, as the battery cannot supply more than 3A, does it mean that I should find a 3000mAh@3V battery and use it without PWM instead of the original one?

This answer is very complicated I'm afraid, unless you use synchronous-rectification mode in PWM'ing the
motor. In synchronous rect. mode the voltage across the motor is exactly an amplified version of the logic
PWM signal, and things behave pretty linearly - 25% duty cycle at 12V will look like 3V, more or less.
(class D audio amplifiers are doing the same thing as a motor driver in sync-rect mode)

Most motor controllers and H-bridges use fast- or slow- decay mode, however, in which the voltage across
the motor is unconstrained when the PWM is off, meaning its at the mercy of the inductive kickback and
motor back-EMF.

In these modes the voltage/current definitely is nothing like you might naively expect, its a non-linear function of
PWM duty cycle and depends on the PWM frequency too if its low.

And of course the other issue is that the current through a DC motor depends on the torque of the load anyway.

jb63:
3. The motor windings are essentially an inductor+resistor. As such, they behave as a low-pass filter.

Sorry, but that turns out to be completely wrong!

The behaviour of a motor is better compared to that of a transformer. Indeed, it is an electromotive-to-mechanical transducer where the "secondary" is a spinning shaft. And it necessarily has "leakages" in its parameters.

I will firstly declare that I refer here to permanent-magnet motors as these are the overwhelming majority of small (smaller than in an electric train) DC motors and quite certainly what is discussed here.

The "ideal" representation of a motor is its "back EMF" which is the "generator" voltage corresponding to the speed of the armature/ rotor, in series with the winding resistance. There is no inductance except due to the "leakages" from design limitations.

What this means is that when the motor is running slowly or you are powering it at a substantially higher voltage than corresponds to the EMF generated at its nominal running speed, the voltage difference between its back EMF and the applied voltage will be solely borne by the winding resistance - which is in fact, always the case. So during the "on" phase of your PWM, you will effectively have 9 V applied to the winding resistance and 3 V to the motor and the heat generated in the winding resistance will be proportional to this.

But note that the power dissipation is proportional to the square of the voltage or current, so if you are powering your 3 V motor at 6 V by PWM and it heats up to a certain degree, then powering it at 12 V instead will heat it up nine times as much.

Perhaps not. Let me see. What you are achieving when you power the motor is sufficient torque to overcome whatever load - including the motor's own bearing losses - the motor is driving. Torque will more-or-less be proportional to the motor current and applying PWM will "average" it out so at 12 V instead of 6 V, you will have three times the current and three times the torque so you will only need to apply it for one third of the time, so the power wasted in the winding resistance will be nine times as much for one third of the time, so it will only heat up three times as much at 12 V as at 6 V.

Remembering that if you powered it at the correct three Volts at the same full speed, the current would be spread out over the whole time and there would be minimal heating in the winding resistance. The PWM value for operating the motor at twice its nominal voltage is much less than 50% because you are drawing much more current.

Incidentally, there is an alternative! You can actually put a genuine inductor in series with the motor (and a commutating diode across the source) which will even out the current variations - effectively making a switchmode "buck" converter so the motor "sees" mostly its back EMF. You do not need a capacitor across the motor (other than to suppress interference) as the back EMF functions the same as a capacitor.

Incidentally, there is an alternative! You can actually put a genuine inductor in series with the motor (and a commutating diode across the source) which will even out the current variations - effectively making a switchmode "buck" converter so the motor "sees" mostly its back EMF.

++Karma; // I should have thought of that!