Electrical – Drive 4 small DC motors with servo controller via PWM

dc motordriverpwmservo

I need to drive 4 small traction DC motors on a 4WD robotic platform from my C++ code which runs on x86 only. I already use the Tinkerforge Servo Brick (it has C++ API) for one servo and I wonder whether this board is capable of driving the 4 small traction motors of the robot with PWM.

If this is not possible, then Tinkerforge has a dedicated DC Brick that drives a single motor. Could I use 2 of these bricks then – one for the 2 motors on each side of the robot? Alternatively I could only use 2 motors for propulsion (one on each side) which should make things a bit simpler.

Best Answer

No. Hobby servo control is not the same as the control of a DC motor.
PWM in a hobby servo isn't quite normal PWM. The pulse width determines the POSITION of the servo, and it's relatively low frequency. In a sense, the PWM signal is just a code passed off to the REAL controller, which lives in the hobby servo package. In a DC motor control, the average value of the PWM is going to be linear with how the motor moves (It's highly related to motor velocity under constant load, but it's more likely something like torque). It's really a very different control strategy. You can't drive a DC motor with something designed to produce the signal that drives a hobby servo.

I would advise against Trying to drive two motors with one DC motor controller, as you would need to figure out how to handle any feedback signals. You either average the two motors, or control one motor and have the other run open loop.

You should find a controller designed to handle 4 DC motors, or use 4 controllers designed to handle one motor.