Go Down

Topic: Controlling an array of 64 small motors (Read 1 time) previous topic - next topic


Hi all...

I've been commissioned to do an installation which requires many small moving parts. I need to individually raise or lower 64 objects, each weighing up to 5kg, by about 1 inch in either direction.  This will be achieved by a rotating threaded rod/bolt assembly below each object.

It will be easy to make the raising/lowering mechanisms manually adjustable.  However, since there are so many of them, each requiring frequent and accurate adjustment, it will be tedious to make the adjustments by hand.  Why not automate it somehow?

So... Could anyone suggest ways to tackle this problem?  My first thought is a series of 64 motors which can be told to spin a certain amount in either direction, turning the threaded rods and thus raising/lowering the objects by an exact distance.  To minimise wiring (highly desirable) each motor would have a controller circuit with an ID number and would "listen" for commands sent to it from a central controller (arduino).  I could tell motor number 27 to spin 8.5 turns clockwise, or tell all motors to spin 30 turns anti-clockwise.  Hopefully just using a 2-wire interface.  That kind of thing.  It sounds ridiculously complicated to me, but from past experience with arduino I've learned never to say never... :)

How does that idea sound?  And could anyone point me in the direction of components to start researching?  I don't even know the names of the things I'm talking about... or if they even exist...

Other suggestions??



If each motor should have an ID number, then you would need some logic (an arduino or maybee something simpler) with each motor, because the motor itself of course can not understand anything but current running through it.

So you could create 64 small controllers with a driver circuit for the motor (H bridge ) and a minimal Arduino . Hook them all up on a RS485 bus. Have a central master that controls all the small controllers.

Just remember that 64 motors create a lot of electronic noise that can cause problemes for communication, and you would still need wiring to all the controllers and motors (the RS485 "bus" and power).

Another problem is that you need motors that can actually move 5 Kg, they need quite a lot of power, and are not cheap.


Thanks MikMo...

So, I've figured that what I probably need are stepper motors, each with its own controller so I don't have to send insane amounts of control information directly to the motors.

Has anyone ever used something like this motor + controller combo?:

I'm guessing that this unit receives some kind of instructions from an Arduino over a 3 or 4-wire interface, such as "spin left for x turns"...??

Assuming it's powerful enough for my needs (I'll probably end up using some kind of gearing), does anyone know of a simple chip that could interface with the motor controllers in a way that MikMo described?   Suppose my central Arduino sent out two bytes of info at a time: the first to select which motor to control, the second to give the motor controller an instruction like "spin right x turns" - all this chip has to do is listen for its unique ID in the first byte, then route the following byte of info through to its respective motor controller.



Hi jon,

It might be possible to use ATtiny85 or ATtiny84 as the address select/ controller as you can program them to simulate I2C bus http://arduino.cc/playground/Code/USIi2c

A bit more info about the project would maybe help. You say to raise/lower 64 objects of about 5KG weight by about 25mm but will the movement be either fully up/down or can it be any position between. Also how fast must it raise/lower.


create 64 small controllers with a driver circuit for the motor (H bridge ) and a minimal Arduino . Hook them all up on a RS485 bus. Have a central master that controls all the small controllers.

That would be my preferred option. Very simple and robust.

Use the USI hardware on the Tiny85s and send address/command as two shiftOuts()s.

Rob Gray aka the GRAYnomad www.robgray.com

Go Up