I am powering 4 motors of a rover through 2 motor controllers (Cytron MDDS30.)
I measured the voltage of the motors sending signals of 100%, 80% and 40% of the duty cycle. 100% works always fine, the others don't, and make the rover go sideways. The measurements are erratic, they also change when we send negative signals. When I powered the motors through a power source, they worked properly, RPMs were proportional to voltage but the current consumption changed (0.5 and 0.7 amperes, for details, see the 2nd table.)
Then I changed the installed motors for some old ones that I had. With the old ones, it always worked properly when powering them from the motor controller.
How can that be?
Installed Motors: Bosch CHP F 006 B20 098
Old motors that worked properly: Bosch CDP 0 986 337 250
A difference I noticed in the datasheets is a so-called "interference suppression component capacitor" highlighted in yellow. Also, the old motors didn't have a Hall sensor. (We never used it.)
I would like to hear that I can use these motors so we don't get back to old ones.
[Edit] Solution:
- I tried Sabertooth motor controllers in "Microcontroller R/C input" (Dip: 010110). They worked. (PWM signal)
- Then I tried the Cytron Motor Controller through "microcontroller analog/PWM" and they also worked (Dip: 10110000). I measured the performance and with a 100% duty cycle, it had 25V. After sending a duty cycle of 99% it dropped to 16.9V but then for lower duty cycles the drop was linear and the same in each wheel. So it worked.
[End of edit]
More info:
I used the motor controllers in serial packetized mode. A Raspberry Pi is sending the signal through USB. Pins in Cytron controllers correspond to this config (11100000) and (11100100).
We ran a series of tests measuring the voltage of each motor (speed was proportional.) I'm using a 25.6V 40 Ah LiFePo4 battery.
Measured voltages using the motor controller with the installed motors:
Then the measures of the RPMs and amperes using a power source. I only changed the voltage: