I have a Minseg [M2V3] two-wheeled robot.
It uses a battery pack as follows:
6 x AA battery (1.5 [V]) in series (9.0 [V] net).
The current batteries are Duracell Procell AAs. [datasheet]
The device passes the battery pack voltage to an Arduino Mega 2650,
which regulates the voltage to power several IC chips.
The device also passes the battery voltage directly to a DC motor driver:
TI SN754410, a quadruple half-H driver. [datasheet]
This receives a pulse-width modulated signal from the Arduino controller,
which states whether to pass or null the source voltage at any given time
to each of two DC motors:
Lego NXT DC motor [datasheet]
My controller specifies a desired voltage.
This voltage is normalized (divided by) the assumed source voltage,
yielding a number ranging from 0 to 1.
This number is converted into a PWM signal,
which is on for the yielded factor of time and off for all other time
for each sample interval.
The source voltage from the battery packs droop proportionally with motor speed.
At zero speed (zero voltage applied), the battery pack provides 8.5 [V].
At max speed (constant voltage applied), the battery pack provides 7.5 [V].
Recall from above that the calculation for passing voltage to the motor
is dependent on an assumed value.
(I measure the battery pack leads at full speed before use, and use that value.)
I realized I could slightly improve performance,
either by sensing the actual voltage dynamically during operation,
or by holding the source voltage to a constant value.
For the first method:
The Arduino analog input is able to read up to 5 [V]. Thus, using a voltage divider (two resistors from + to -)
to multiply by a factor of R2 / (R1 + R2),
[in this case, approximately 10k / (15k + 10k) = 0.4], over the battery pack terminals (up to 9 [V]),
can serve as a fair voltage sensor.
(Some filtering would likely be necessary?)
But I wanted to go with the second method:
I purchased a premade (hobbyist) voltage regulator [datasheet]
(Yeeco Ultra DC to DC Buck Boost Converter Adjustable Voltage Stabilizer 5.0-25V to 0.5V-25V Automatically Step-Up/Step-Down Car Power Supply Module Voltage Regulator)
I did put the aforementioned voltage divider across its output (for later use); however,
I do not believe this has much of an impact on performance.
When I turn on the device, there is a 2 second delay without motor use.
It thus turns on as normal.
After the two-second window is passed, when the motors would begin to activate,
the Arduino shuts off (self-protects?).
It is my thought that the series AA batteries cannot handle
the pulse requests from the voltage regulator at its input.
I do not believe that the datasheet provides adequate enough information
to know if I am bypassing a limit.
It does state "2 [A] / 1 [s]";
does that mean a near-linear relationship and maximum of "0.02 [A] / 0.01 [s]"?
If this were the case,
which types of battery material are best suited for such pulses at a AA size?
It would be nice to not go over 9 [V] such that I could demonstrate behavior with and without the voltage regulator using the same set of batteries; however,
I'm not averse to hearing all of the options.