I’m interested in developing a control mechanism for several stepper motors. Currently I’m interested in controlling five mortars however, in the future I will need control 14 motors in this project. I will need to control both the speed and amount of steps for each motor separately dependent upon input. I’ll also need at least 15 inputs for sensors of various kinds.
For those needs, an Arduino Mega would be a near necessity; a standard Arduino doesn’t have the I/O for that, without extra parts.
- The motor specs at 0.4A. Will I need a driver for these stepper motors?
Yes - pretty much any load beyond an LED, you are going to need something like a “driver” to interface with it.
- How many stepper motors can I control with the Arduino Uno?
That all depends on how you interface to them, what kind of steppers you are using, what the driver circuitry looks like, etc. There is no hard or fast answer.
- How many stepper motors can I control with the Arduino Mega 2560?
- With regards to all of the above which board would suit me best? (I would prefer a board that includes everything without the use of shields)
You are unlikely to find a board that will do everything you need to do, without a) building it yourself, and/or b) spending a lot of money for it.
IMHO - you are approaching the problem wrong.
What you want to do, instead, is put some “smarts” into each stepper motor. If you look hard enough, you can find “bolt-on” stepper motor controllers that will do this (Pololu is one source - but there are tons others; I get emails every now and then from a chinese company that makes “smart steppers”). These controllers take simple inputs, and translates those inputs (like direction and speed) into the stepping pattern necessary for the motor. Some are designed to mount right on the motor.
Some can be found that use a simple serial interface - I2C, generally. They use chips like the following:
This way, you could have as many or as few steppers as you need on a bus, and you can easily use an UNO or a Mega (likely a Mega - for controlling a lot of steppers, though not knowing what your application is, I can only assume it will be complex and warrant more memory than what a standard Arduino can deliver - but I could be wrong), since you only need enough I/O pins for the I2C serial interface.
You could also buy communication chips (or boards) that allow you to interface your sensors on this same I2C network. There’s an I2C library (the Wire library, IIRC) for the Arduino than can easily handle the interfacing to your code.
Making such a system modular like this also helps with debugging both software and hardware issues, and also makes maintenance much less of a pain.
Hope this helps…