Controlling 12 motors! Can I do this with arduino? What will I need?

Forgive me if I posted this in the wrong topic. On this forum I tried to read as many as I can. Still I am new so forgive me

Hi,

I am trieing to controll 11 or 12 5volt stepping motors.

Here is what I wanna do:

Must be Controllable with a lcd touchscreen
Menu step 1 Welkomscreen with selfmade logo must appear
Menu step 2 Choose from option number 1,2,3 or 4
Menu step 3 Choose from option small, normal or big
Menu step 4 confirm choise

Step1
-Depending on what option (1,2,3 or 4)we entered in the at menu step 2. Motor number 7 will rotate (360degrees)5, 4, 3 or 2 times to the left, and then will stop.
-at the same time a signal wil go to motor number 6 to turn 4 times to the left
-at the same time the loadcell must be activated to set a 0 point

Step 2
-depending on what option (1,2,3 or 4) we entered at step 2, motor number 1, 2, 3 or 4 will rotate slowly to the left
-at the same time the loadcell must read data.

Step 3
-depending on what option (.small, normal, big) has been chosen in menu step 3, the motor from step 2 that is running will stop running when the data of loadcell reaches 0.5 gram , 3 gram or 5 gram

Step 4
-When the chosen data is reached and motor from step 2 has stopped running, motor number 7 will rotate right. (The number of rotations depends on the option entered in menu step 2. So if we chose option 1, the motor number 7 will at this point rotate 4 timed to the right, if option 2 was chosen, the motor will rotate 3 timed to the right. 2 times for option 3 and 1 times for option 4.)
-Then the motor nr 7 will stop.

Step 5
-Motor nr5 will slowly rotate
-loadcell must still read the data

  • motor nr5 will stop rotating untill loadcell data reached total of 20gram
    -loadcell will turn itself off after this happends.

Step 6

  • then the motor nr8 will start to rotate 12x fastspeed to the right and then 12x slowspeed to the left
  • at the same time motor nr 9 will start to rotate normalspeed to the left (it will do that 60x to the left and then stops )

Step 7

  • after motor nr8 is finished rotating motor nr 7 will rotate 1x (360degrees) to the right
  • at the same time motor nr10 will start rotate 50 times to the left at slowspeed and then rotates 50 times to the right fastspeed.

Step 8
-when motor nr10 has rotated 30 times slowspeed to the left, motor nr11 will start vibrating for 40 seconds

Step 9
-when motor nr11 is done vibrating, motor nr12 will turn 6x to the right (normalspeed) and then 6x to the left (normalspeed)

Menustep 5

  • the menu will confirm it is ready and then will shutdown after 10 seconds

My questions are:
1: Can I do this with arduino?
2: What do I need besides motors and load cell?
3: Is it true I need arduino mega to control my 12 motors?
4: DO I need time relais and if yes, what sorts?

Thnx in advance!

Looking at this example

the motors will need typically 4 control lines. The code will create pulses
in different sequences to pulse the motor control lines.
12 motor means 48 control lines. Easy to do with a mega and proper hardware
buffers for the current needed by the motors.
Or, use an Uno and SPI.transfer()s to shift registers to create the pulses,
and proper hardware buffers for the current needed by the motors.
You have 54 IO total on a Mega.
48 for motors.
Save D0, D1 for serial comm's for debugging.
Leaves 4 for display, load cell.
Probably good idea to use a display with serial interface. Some examples: http://www.newhavendisplay.com/serial-displays-c-253.html
Use I2C, or Serial.
Then have 2 pins free for load cell.

Thnx for your reply crossroads!

So to make a long story short. Technically this is all possible with arduino! And you advice me to use mega or uno+spi transfer because that will have enough lines for my plan :slight_smile:

I think I will go for the arduino mega option..

now my next questions are:
1: Can I make a load cell count , lets say to 10 gram, and then make a motor stop when it hits that 10 gram
2: For a motor to delay, will I need a timerelais or can I set this with the standard arduino mega board? If I need timerelais, Should this not require more lines meaning a bigger mega board

You control the motors with code, and hardware buffers for the motor current. No relays needed.

Wow Crossroads,

You are really helping me here. I will try to make a electric circuit drawing of this as soon as possible. I think I will use fritzing software for this.

And yes I will use cheap motors (2 or 3 dollar each) from china OR I will look into some old computers that are in my basement, see if they still got the motors in it as shown in ur links

I do have some questions about those hardware buffers ur talking about. are they standard on the mega ? or in the motors? Or is that something I can buy extra?

You also need to ensure the motors are adequate for the loads they are driving - which
means working out torques and speeds and so forth...