I am running a stepper motor using arduino and IC l293d. What is the maximum possible speed of rotation that I can achieve with the IC and what should be the applied voltage for the same? Earlier, I got the optimum rotation with a step size of 30 at 7V. I want to increase the step size. What should I do?
As this link states:
Stepper motors are normally used for positioning, and are not known for their speed.
However, the link is to an on line stepping motor speed calculator.
As for the size of the step, this is a function of the way the stepping motor is built. Some controllers / stepping motor combinations can do half steps or micro steps. Disable these feature for the fewest number of steps per revolution.
These are some of the basic concepts which deal with practical stepping motor applications. As speed increases, other factors come into play. For example, resonance and inductance.
In this paper resonance is discussed:
If a rigidly mounted stepping motor is rigidly coupled to a frictionless load and then stepped at a frequency near the resonant frequency, energy will be pumped into the resonant system, and the result of this is that the motor will literally lose control.
The paper also discusses the effect of the stepper motor's coil inductance:
An important consideration in designing high-speed stepping motor controllers is the effect of the inductance of the motor windings. ... The inductance of the motor winding determines the rise and fall time of the current through the windings. ...
The speed of the stepper motor (assuming you measure it in RPM) will depend on many factors. I am not sure how the "30 step size at 7V" you mention is relevant.
IMHO, the most important parameters are
1) physical parameters of motor (steps per revolution, rated voltage, motor intetia)
2) Load on the motor
3) software implementation
Normally you shouldn't be able to affect 1( if you are looking like most arduino's developers you should be looking at things like this. i.e. 200 steps per revolution, 5-12VDC and a few tens to hundreds of g*cm^2 or motor inertia.) or 2 (although with higher loads lower velocities can be achieved, normally you select the motor based on the load and not vice versa).
Therefore you are left with Software implementation. Things here can get messy very quickly depending on how experienced you are and what you want to do. e.g. The arduino Stepper library is simple and you can set parameters but it is blocking (i.e. you can't do anything else until movement is completed, or interrupts are used).
If you want to get your hands dirty (and your head messed up ;-/ ) you can looks at
pin registers (for increasing speed) here.
My experience is that normally you can get up to 150 [rpm] easily. Theoretically you should be able to go higher but the uC should be doing pretty much nothing else.