Power Supply Selection - UNO, L298P Motor Shield and 3V DC Motors

Looking for some advice on the choice of power supply for my Arduino project. I am using an Arduino UNO R3 board, a DFRobot 2A L298P motor shield and two 3V DC motors that draw relatively high current (0.15A no load and 2.1A stall). The Arduino will interface with some sensors like digital compasses, metal detectors and IR distance sensors. I must have external power sources for both the Arduino and the motor shield.

Information on motor shield: http://www.dfrobot.com/index.php?route=product/product&filter_name=motor%20shield&product_id=69#.UV66lZNTB8E Information on motor: http://www.pololu.com/file/download/fa_130ra.pdf?file_id=0J11 The motor model name is FA-130-RA-18100

My research tells me that I should use a 7V DC power source for the Arduino, and my current plan is to use a 9V battery, which will operate at less than 9V as I have read. The motor I have is, as I said, low voltage but high current. Therefore I have the following questions:

(1) The motor shield datasheet says, "Motor Driven Voltage: 4.8-35V". Does this mean that the motor shield will supply its motors with a minimum of 4.8V? Will this potentially cause problems with the 3V motors? How does the motor shield determine what voltage to supply the motors with? (I am a practical electronics novice... only have experience with theoretically calculations in the classroom lol) (2) What voltage battery should I use to power the motor shield? Should it be 3V, the same as the motor? or a bit more due to loss by voltage regulation? What would you recommend for the external power supply for the motor shield? (3) Are there any complications with high current draw and batteries? The Voltage drops and deteriorates over time, does anything happen to current?

Thanks in advance!

3V motor and L298P don’t go together.

The 4.8V is the minimal voltage.
Look at the datasheet of the L298P. At 2A the highest voltage is 2V lower and the lowest voltage is 1.7V higher.
If you supply 12V to the L298P, the motor gets only 8.3V.
The L298P is an older motor controller chip.

You could use a newer mosfet motor driver. Or build one yourself.
Is the motor for a moving robot ? Do you need a H-bridge ?

If you use a DC/DC converter, the energy is used very efficient. With a DC/DC converter, the voltage of the battery is no longer an issue. You can use them for the motors and perhaps also one for the Arduino.

As power supply, you could use balanced Lipo battery packs (with a balanced charger) as used for RC cars and plains.

Thank you for the response. The motors are indeed for a moving robot. I thought that I would not require a H-bridge as the motor shield already enables me to drive the robot backwards, forwards: everything I need for differential steering?

I've tried reading the datasheet for the L298P IC, and am having some trouble with understanding what all the things mean. I think you are referring to the Saturation Voltage vs Ouput Current graph? I'm not really sure what saturation voltage means in this particular instance; I think it means that whatever voltage you supply the shield with will be dropped by the value of the saturation voltage? While replacing the motor shield I currently have is not completely out of the question; due to budget, time and proficiency constraints, I would like to use the one I have right now. Will it simply NOT work period with the 3V DC motors? What is the simplest thing I can do to make it work with the motors?

With regards to the power supply, I've read that LiPo battery packs are expensive in comparison to NiMH rechargeable or Lithium primary batteries. What is a good indication of the weight benefit of using a LiPo battery pack? And would you suggest using 2 LiPo cells in series for 7.4V; or 1 LiPo cell for 3.7V and a boost-converter to up the voltage? I think I will use DC/DC converters for both the Arduino and my motor shield: what output voltage should they have? The Arduino one should be at 5V yes? What about for the motor shield?

The L298 is a H-bridge. An H-bridge can reverse the polarity to the motor, to make the motor go backwards. http://en.wikipedia.org/wiki/H-bridge

The saturation voltage is like you wrote. The saturation is when the output is completely driving low or high. The output voltage is however not 0V and the maximum. There is a voltage drop of 1.7V and 2V.

If you use two Lipo cells in series, they could discharge differently. So they could get damaged. That is why I mentioned the "balanced" Lipo battery packes. The "balanced" means that every cell can be accessed by the charger and the cells are matched in the factory.

If you use a single Lipo cell, you don't have that problem. In that case you need step-up converters. You can supply about 6V or 7V (6...12V) to the power plug of the Arduino Uno. The onboard voltage regulator makes 5V.

You can not supply a higher voltage to the motor shield to compensate for the voltage drop, because that is wrong ! The voltage drop is not consistant, and if the motors use little current, they get too much voltage. If the motors use a lot current the voltage is too low. So they won't start or get damaged (perhaps both). That L298 is fine for small 12V motors. But not for 3V motors. I don't know how to make this work in a simple way. You need another motor driver, or at least a mosfet (PWM) and a relay (to change direction).

What would be the best thing that I could do with the L298P motor shield? To just supply it with 4.8V such that the output voltage of the motor shield is as close to 3V as possible? If the voltage drop is between 1.7V and 2V; then 4.8V would be dropped to around 3V. The motor runs anywhere between 1.5 and 3V.

The motor shield I'm using has PWM speed control. Could this be used to regulate voltage?

The voltage drop is 1.7V and 2.0V (total of 3.7V at 2A). The voltage drop is close to zero with low current. That is why I wrote that the motors won't start or get damaged (perhaps both).

The PWM can be used to lower the voltage in some cases, but not with your motor. The 3V motor could get 6V, and that difference is too large. You would have to measure the voltage over the motor with a low-pass filter and control the PWM signal according to the voltage the motor is getting. It might not even work or it could start oscillating.

Yep, looks like I will have to find an alternative for my motor shield.

In the mean time, I'm considering cheaper power supply alternatives to the balanced LiPo battery packs you mentioned. I have almost no requirement in terms of capacity: only need to sustain 30 minutes of runtime. (Kind of a one-off thing...) I haven't calculated how much current my Arduino will draw because my demand on capacity is going to be low regardless even if we use a number like 500 mA. Space and weight are important factors, they should be kept as low as possible.

I'm looking at using a 1.5V AA Alkaline battery with a step-up converter to power the Arduino; and then perhaps 1 1.5V AA NiMH for the motor. Would this have any problems? Do I need to up the Alkaline to something similar to NiMH?

Any suggestions and advice would be appreciated.

500mA for 30 minutes, two AA batteries can do that. Either Alkaline or NiMH. Two Alkaline provides 3V, so that would be all you need. The NiMH batteries supply a lower voltage. If two good Alkaline batteries (Varta, GP) are not enough, there are expensive AA batteries that could last 50% longer. If you use two AA batteries for the motor and the Arduino, you only need a step-up for the Arduino.

Some (compatible) Arduino boards work even at 2.7V http://arduino.cc/en/Main/ArduinoBoardLilyPad With those you don't need the step-up converter.

I searched for a motor shield that can handle 2A at 3V (3V at the motor side), but I didn't find any.