I’m building a small and simple four-wheeled robot. I will be using a single battery, two motor drivers (mosfet H-bridge) and four motors. I haven’t decided on the exact components yet, but say the battery has ~11 V and the motors are 6 V.
I know connect the battery directly to the motor drivers and then use a PWM duty cycle less than 6/11 (~60%) and it should be safe for my motors. What worries me is the reduced voltage of the battery as it discharges. This will cause the power delivered by battery given a 60% duty cycle to reduce over time. I have come up with a few alternatives to deal with this:
1. Linear regulator between battery and motor driver
BAD idea because it will be very energy inefficient and dissipate a lot of heat.
2. Switching regulator between battery and motor driver
I believe this is a good idea. Except for some extra money spent and
extra components, I don’t see any obvious disadvantages. This is the
option I’m leaning towards.
3. Measure the voltage of the battery from the microcontroller
Another good idea I think. If I know the voltage of the battery I can adjust
the PWM accordingly.
4. Measure the motor position and calculate the speed
Apart from the need for an encoder on the motor, I don’t think this is
viable because my motor won’t run at constant speed. So I can’t really
derive anything useful from estimating the motor speed for a given PWM?
5. I don’t do anything at all
Maybe I’m making this a bigger problem than it really is since I have had a hard
time finding anyone discussing it. Maybe there are other effects at work here that
makes this a minor problem? But if I’m right then the performance of most smaller
robots I have seen should decrease as the battery discharges.
Any other options I haven’t thought about?