I am looking to control several small motors (possibly up to 16) and so I need suggestions on a microcontroller and motor controllers. I’m new to robotics, so I’m going to start small with just 4 motors, but I don’t want to buy a new microcontroller if I later want to add more motors. So I’m looking for a microcontroller that can handle lots of motors and is easy for a newcomer to get started with. I’m a software development, so the programming part should come easy. Arduino is sounding like the common brand, so I was leaning that way. I also need a couple dual motor controllers to go with it.
Here’s the motors I’m liking: Voltage 5vdc, current 88mA.
robotshop.com/en/solarbotics-gm7-gear-motor-7.html
I chose these because they seem to have good torque for their small size and low cost.
Since multiple motor controllers will be involved, low cost is my first priority. Small size would be a bonus, but is not necessary as I can always get better/smaller ones later.
Hi,
If we assume that you want to control each of 16 RB-Sbo-05 motors separately, you’ll need 8 I2C dual motor controllers that can provide at least 500mA per channel.
This I2C 6-15V Motor Controller can provide a maximum of 2A per channel. You’ll need 8 daisy-chained of these I2C motor controllers if you want to control 16 seperate motors.
Also, you can use this Dagu 4 Channel Brushed DC Motor Controller that can provide 2A of continuous current per channel to control a maximum of 4 separate RB-Sbo-05.
In case you want to control 12 more (16 in total), you’ll have to connect 4 motors per channel. So, you will always have 4 out of 16 motors rotating at the same speed and direction (2 in the same direction if you invert wires).
As for the microcontroller, you can probably use a standard Arduino board like the Arduino Uno with the motor controllers we mentioned.
If you are opened to other solutions, you can, instead of using DC motors, use 16 of these continuous rotation servos.
The servos can be controlled with the Lynxmotion SSC-32U USB Servo Controller that can control up to 32 servo motor.
Hope this helps.
I understand the motor controller limitation, though I’m not sure if you’re also saying there is a microcontroller limitation here too? Maybe some more specific requirements will help:
-I need to control the speed and direction (fwd vs back) of each individual motor so that I’m not limited to groups of motors as you specify.
-I don’t care about the angle the motor is rotated to, which seems to be the servo motor advantage, so I’m leaning away from them.
I can attempt to reconcile my design with less motors if there is a limitation for the microcontroller, but if not, I’m comfortable buying 8 dual motor controllers or 4 of the 4 channel ones if that’s possible. Can you clarify?
Also, is 2A the equivalent of 2000mA or what?
Hi,
That’s the advantage of using I2C motor controllers. I2C motor controllers can be daisy-chained so that you can send I2C commands to 8 motor controllers with one Arduino board.
For example, for the Arduino Uno, I2C pins are A4 (SDA), A5 (SCL). Each dual channel motor controller will drive 2 DC motors so in total you’ll have 16 DC motors separately controlled (speed and direction).
arduino.cc/en/reference/wire
For the Dagu 4 Channel Motor Controller, you’ll need 4 PWM pins and 4 Digital Output pins from the microcontroller to control the speed and direction of 4 motors.
The Arduino Uno has 14 digital input/output pins (of which 6 can be used as PWM outputs) so it should be more than enough for the Dagu Motor Controller, but not enough for four such controllers.
Yes, 2A is equivalent to 2000mA.
Regards,
