First of, since I come from web programming world, I'm pretty new into electronics and maybe some of the things I'm doing are wrong or could be done better, so any hint is highly appreciated.
I'm building a robot/crawler with 4 wheels. Each wheel is directly connected to a 6V 210RPM Motor DC with encoders.
I have a dual-way motor driver with 2 H-bridges
The driver is powered from an LiPo 2S battery 7.4 V
2 right motors are connected in parallel to one H-bridge and 2 left motors to the second H-bridge of the driver.
I'm controlling the motors through an arduino UNO by sending PWM signals to the PWMs of the driver.
Since the motors have encoders, I could read the rotations of one encoder from each side (one from left and one from right) and adjust dynamically the PWM for the other side, by taking the slower side as a master and the faster one as a slave, to force them move in sync.
The problem I have is that the motors which are connected in parallel move with different speed, although they receive the same voltage / PWM signal. Also their specs are identical.
I understand that mechanically they are not identical and different factors can affect their performance, but how to solve this problem? Is it possible?
Here are my ideas:
- Does it make sense to read the encoder values from both motors connected in parallel? I think not, because if I'd try to lower/increase the PWM - both would be affected and the faster motor would still be faster.
- Maybe attaching a resistor to the faster motor and trying to find a good value for the faster motor to slow it down up to the moment when it rotates in sync with the other one. But then this would work only if their speed difference is also proportional.
- Last idea is to match them by the least speed difference and to connect in parallel those pairs which are closest to each other.
Maybe there are other proper ways to solve the problem which I have no idea of. But from the big amount of similar projects I found in internet, I guess they have a solution for this. Or maybe nobody cares that the front wheel of the right side would rotate slower than the back wheel from the same side?