I am currently supplying 12V to the motor controller and thus the motor.
How can I speed this motor up? It is currently spinning at a rate of around 5 turns per minute when using the code.
for(int a = 0; a < steps; a++)
{
digitalWrite(stp,HIGH); //trigger one step
delay(1);
digitalWrite(stp,LOW); //pull low so it can be triggered again
delay(1);
}
Your code is causing a step every 2 millisecs, or 500 per second. The motor has 200 steps per second and a (roughly) 100:1 gearbox so it needs about 200 x 100 or 20,000 steps per shaft revolution.
In general the HIGH pulse can be reduced to about 10 microsecs and then you can experiment by changing the interval between pulses. Something like this should give you about twice your current speed.
digitalWrite(stp,HIGH); //trigger one step
delayMicroseconds(10);
digitalWrite(stp,LOW); //pull low so it can be triggered again
delayMicroseconds(1000);
The second example in this Simple Stepper Code shows how to do that without using delay()
This motor comes with an integrated gearbox which reduces the speed accordingly; it is apparently built for high torque at low speeds ...
The stepper motor wants to be driven with 1.7A -> way too much for your current driver (look at the datasheet)
Questions:
a) did you check the microstep setting (full step is required to get the highest possible speed)
b) can you post the whole code to see if there is something adjustable in your code which gives more speed, and: did you play with the delayMicoseconds - your delay is way too small
c) did you adjust the current of the driver to its maximum?
d) do you have a possibility to power the driver/motor with more than 12V (at least 24V would normally give more speed - but I doubt that your configuration allows for much more)
Edit: Robin2 was quicker, but also pointing to the gearbox and delay issues