Biggest Motor Drive Shield

Hi! I need to create pretty big array of dc-motors >100 and I looking for easiest way to control them. I found that I can use Motor Drive Shield, that can control four dc-motors. But for that array size i need to use 25 shields. Maybe someone know better solutions?

What kind of motors ? voltage ? stall current ? Should they be able to turn in both directions ? Should it be possible to control the speed ?

Would it be possible to have a data bus, and the motor drivers near the motors ?
The data bus could slow things down a little, should all motor be able to start at once simultaneously ? within how many milliseconds ?

Brushed dc motor. 12V. Stall current 20-30A. I need to be able change directions, no more.

Driver must be outside. This thing doesn't require high synchronisation. May be limit is about 100-300 ms.

No 'motor shield' can handle that current. U'll need additional power mosfets or relays to switch stall/start-up currents

You gonna need something like this:

Pololu has more drivers for such high currents.

Or you could use an ESC, they can be cheaper. Some of them are poor quality.

100 motors of 30A is a total 3000A (or less if they are not all active at the same time).
100 drivers of 50 dollars is a total of 5000 dollars.

I suggest to create about 10 sections, each with an Arduino Mega 2560 with about 10 of those drivers.
You can have a power supply per section. That's makes the power supply easier and cheaper.
Plus one main controller unit. Perhaps also with a Mega 2560, that sends commands to the sections. Using a serial ttl bus, or a high speed RS-485 bus. The main controller could be connected to the internet or with a receiver for a remote control.

Using the sections (or modules) can be a good thing. You can have a spare module to swap with a faulty one for easy repair.

You are going to lift a house ?

EDIT: After reading the previous post by knut_ny, using relays is also a good option. There are many relays for cars that can handle 50A. You need two SPDT relays per motor. You can buy them on Ebay for 3 to 5 dollars each. You should test those cheap ones a few days to see if they start smoking or melting.
The Arduino needs a driver for those relays, since they are about 12V 100...500mA for the coil.

Thank you for links and description of system. I wrote this tech specification as an example. But maybe If I choose low voltage dc motors with small stall current, is there shield that can handle more than 4 motors? I just need easiest and cheapest solution that can switch direction of current each element of array.

There is an Open Source design that can drive 10 stepper drivers, that is the most I know of Decapede - RepRap. Interestingly Pololu have DC motor driver modules with the same 0.8x0.6 size, so with a few changes to the schematic you could drive 20 motors with a similar shield.

Most Arduino shields are designed for hobbyist rather than industrial scales, but you could stack shields e.g.
Stacking Shields | Adafruit Motor Shield V2 | Adafruit Learning System, claims to support 128 motors. There may be some power issues there.

There are also some high power shields e.g. Arduino Compatible Mega Motor Shield 13A, 5-28V - RobotShop and many other motor drivers in all levels of power rating, it is a simple matter of wiring really.

For a one-off job, you could try relays, may not be very reliable and certainly noisy.

However you do it, 100x anything will add up, the way to reduce cost is to buy in bulk rather than look for an integrated solution.

I think I would find the cheapest motor driver with the right power rating, mount them on stripboard in groups. For a 100 motors, you need lots of control pins. I would use an external IO expander, and daisy chain them together, so you could control all motors with one Arduino.

You can't just stack loads of shields on top of each other no matter how many motors they can handle. They will conflict.

For 100 motors you first need 100 Arduino output pins. Start there.

fungus:
You can't just stack loads of shields on top of each other no matter how many motors they can handle. They will conflict.

They won't if they have individual addresses. Read the link!

Centipede provides 64 extra pins, that's a good start. Centipede Shield V2 - Macetech Electronics Store. Two One Arduinos could control 128 motors.*

This project is unlikely to find an off-the-shelf solution, some soldering will be required, however it is done. Even at 1A each, 100 motors will need 100A (natch) so careful consideration will need to be given to power routing.

  • ETA You can use two Centipedes per Arduino by setting Address jumper. Physically they might not stack well, but each board only requires 4 connections to Arduino.

sergin3d2d, please tell us about your project.
The cheapest solution might not be the best. With so many motors, you can not afford to spend all your time repairing things.
A 3V or 6V DC motor costs 1 dollar on Ebay, or 50 cents if you buy 10 of them.

There are 16 channel relay boards. You can control 8 motors with that.
When they are in an array (a grid), a good option is to make it modular. For example one module could be one row.

A Mini L293D Motor Drive Shield Module costs 2.50 dollars on Ebay and can control 2 DC motors. You can connect many of those to an Arduino Mega (about 30) and about 9 for an Arduino Uno. There is even a cheaper version of that, search for "HG7881", it costs only 1.70 dollars and can control 2 DC motors.
A clone of the old Adafruit Motor Shield costs 3.50 dollars on Ebay and can control 4 DC motors. You can connect just one to an Arduino Uno.

My goal is in creating kinetic artworks. The technology is similar to this arduino project http://www.wired.com/2013/10/49-rubber-duckies-moving-in-perfect-harmony/?viewall=true but idea and look is different. Next project is creating "heat display" that uses peltier elements and temperature sensitive plastic sheet. Both this ideas require ability to control each element separately and I need to control only current direction.

Well, there you go. Buy your kit from Adafruit and wire it up!

Simples :slight_smile:

The rubber duckies floating on an invisble wave use servo motors.
Are you sure that you need normal DC motors ? They don't stay in sync.

The peltier elements require a lot of current. About 5A each.
When you have an array of 10x10, and maximum of 50% is on, you need 250A.

The "duck motor" is not a servo, it does not have it's own controller. It's a DC motor with potentiometer, although the creator ended up not using the position feedback. There is a datasheet here Mechanical sculpture for Faz Elektrik, and description of the design at the same website. He also provides source code :slight_smile:

1 Uno, 2 Megas and 14 quad DC motor shields.

make your self familiar with what a H-Bridge is and how to built it. You need only 4 MOSFET and some resistors for that. With that you can control a single motor forward and backward. Cost per PCB < 10 USD.

Then you have the problem how to control them simplest solution: a shift register. Other possibility: port expander or a board with enough pins. A DigiX for example has 99 usable I/O pins.