need help understanding some basics with motor shield

Hello need help to understand where my rpm-s are disappearing
im not programmer or electronic so be gentle :-*
Setup:
arduino UNO (powered over USB)
arduino motor shield rev3 (powered from 9V alkaline battery)
DC micromotor
Operating voltage: 1.5-6.5V DC
Rated Voltage: 6V DC
No load speed: 12000±15%rpm
No load current: 280mA

if I connect motor directly to battery it rotates clearly faster when I connect it through motor shield.
in code the speed is set to 255

does the motor shield drawing so much power that it is visible with naked eye? I dont have tester to evaluate exact motor input values.

So how to control motor input voltage if i use small motor but bigger battery pack? or if i want to use two motors with different voltage need?

Tatikas:
(powered from 9V alkaline battery)

If you mean the small PP3 style of 9v battery that is almost certainly the problem. Try a pack of 6 AA cells.

...R

And the darlington motor driver will lose 2.5V or so anyway - not a great choice for a low voltage motor.

Motors need current, small 9V batteries can't supply nearly enough for any motor, even a small hobby motor.

thanks for reply

MarkT:
darlington motor driver will lose 2.5V or so anyway

I presume that 2arduino motor shield rev3" is that kind

2.5V is alot to lose i will try better power supply need to calculate my future setup total current need...

but for my second question? - how to control motor input voltage if I want to use two motors with different voltage need?

how to control motor input voltage if I want to use two motors with different voltage need?

Motors don't have a "voltage need".

Your project needs mechanical power, so you should pick a motor that provides the speed and torque necessary for the project. The speed is controlled by the voltage and the torque is controlled by the current. If you are building a robot, there is some useful background here.

The Pololu DRV8833 seems to be a good choice for driving motors with low voltages. It's max is 10v IIRC. I am using them with a 3.7v LiPo.

...R

jremington:
Motors don't have a "voltage need". ..... . The speed is controlled by the voltage ...

thanks for correcting me but dont take offense if say that you are probably engineer :slight_smile: -as you answer is totally correct and in this case useless.
and if you think who I am... you are correct too :wink:

So behalf "voltage need" read " input voltage" or if you want "speed and torque" is this more correct?

Situation- if I have 12V power supply and i want to use one motor what needs 12V to work on needed "speed and torque" and same time other motor needs just 3V to work on its needed "speed and torque"

if i connect this 3V motor to 12V power supply it will probably rotate too quickly

So what are my options to get proper voltage to these motors?

1)PWM?
2)separated voltage regulator?

PWM does not regulate the voltage, it just changes the average current.

If you want to run a 3V motor on a 12V power supply, you may need a 3V regulator. An alternative is to use a 3V power supply.

If you want a better answer, post the characteristics of the motors and the torque and speed requirements of your project.

thanks you answered my question I was just theorizing and wanted confirmation that with just arduino + motor shield I cant control motors with different voltage need so its better to use two separated motor controllers.

jremington:
PWM does not regulate the voltage, it just changes the average current.
nswer, post the characteristics of the motors and the torque and speed requirements of your project.

Depends on the mode, in synchronous rectification mode PWM directly controls the average voltage,
which is why its great for motion control loops (if not the most efficient).

For slow/fast/mixed decay modes the relationship between PWM duty cycle and output is non-linear and
quite complicated in practice.

Depends on the mode, in synchronous rectification mode PWM directly controls the average voltage,
which is why its great for motion control loops (if not the most efficient).

Good thing for an Arduino beginner to know!