artaex:
You could use an EasyDriver stepper controller (one per motor).
Basically you connect the four leads of the motor to the stepper driver, and then you control the driver using a single pin (it's marked STEP on the board) and optionally DIR to control the direction. The board has integrated microstepping control. I've used such board myself and I have to say it's a great product. Unfortunately, it costs $15 at SparkFun.com (found here). So I recommend you get them from China for $3 each (Ebay link).
I wasn't expecting a reply so soon, thanks a lot!
Having 1 pin taken instead of 4 pins per stepper certainly sounds much better (I only want them to move in one direction so from your description I shouldn't need to provide that, but even if I do, 2 pins is still better!).
For the 4 wire driver (ULN2003), I believe the code should look something like this (never used steppers and they haven't arrived yet so this code may not be completely correct):-
Stepper myStepper(64,8,9,10,11); //define 64 steps and pins 8-11 for use with the stepper/driver
void setup() {
myStepper.setSpeed(1); //Set speed to 1 rpm
stepper1.moveTo(0); //Set position to 0 degrees
}
void loop() {
stepper1.moveTo(32); //Move 180 degree position
delay(5000); //wait 5 seconds
}
With the easyDriver, how would you define "myStepper" as you're now only using 1 pin instead of 4? Or is it the case you need to just turn the pin "HIGH" for x microseconds and then set it "LOW" again to stop it moving?
I've also seen references on the web that the easyDriver gets pretty hot to the touch so some sort of cooling (heatsink) is needed, is that your experience? My project won't be driving the motors very hard nor will they be lifting significant loads (it's for a custom clock project).
Robin2:
I think those are 5-wire steppers and can't be driven by an Easydriver - but not certain of this.
In any case, rather than buy 4 stepper motor drivers why not just buy a second cheap Arduino - or splash out and buy a Mega.
I've just got a Leonardo (similar price to an Uno) and it appears that its serial pins (0,1) can be used separately from the serial connection to the PC over the USB connection. That means it would be a convenient option for the "master" device as it could easily talk to the second Arduino as well as to the PC.
One disadvantage of not using stepper drivers is that the Arduino will need to do a lot of work to supply pulse sequences for all the coils on 4 stepper motors.
...R
Thanks, I did think I2C was maybe a solution seeing as another ATMega328 chip costs around £2-£3 on ebay and then I double the amount of useable pins minus 2 for the clock/data lines. I was also thinking of somehow programming an ATMega32 as my chip instead of a ATMega328 as that provides a lot more pins to use.
I was trying to avoid having an Arduino board (like the UNO, Leonardo, Mega etc...) as a permanent control board in the project as it feels like a waste as they're more like development boards than boards you keep in a permanent/final project (I generally prefer to upload the program to another chip and then have that permanently in the final circuit). The boards also take up more room than if you were to move it over to a PCB for instance (as they contain a lot more than you sometimes may need in your project). However, with this project needing so many pins, I may have to re-think that and actually go for an Arduino Mega. EBay seems to have some for under £15 and it may be the simpler (and maybe even more affordable) way to go in the end.
I think the first step is to maybe hold off buying anything further, wait for the cheap stepper/driver bundle to arrive (which may be a while as they ship from Hong Kong), see how I get on with them and then move on to this. I'm starting to lean towards an Arduino Mega now I've seen the price on eBay 
Thanks a lot for your input!