I am planning to build a robot arm with stepper motors, previously I built it with servos but they dont have the range of motion that is in my need (at least those I used). So I saw these stepper motors Nema 17 and boght 5 of them with the Texas Instrument drivers (think theyre named DV8825). It work pretty good, but I am wondering if I can precisely control it, for instance if the stepper motors are in lets say a 90 degre angle downwards, and I pull the power, then when it starts up again can I "know" witch position is "0"?
Hopefully you understand what I mean, but I cannot find it possible.
Do you mean that the power may be removed with the stepper in any position and as a result when power is restored you will not know what position the stepper is in ? If so, how did you deal with the problem when using servos ?
A couple of comments
once power is removed the stepper will be free to move if any force is applied to it so even if you save the position it may not be relevant once power is restored
the classic way to deal with this problem is to have the steppers move to a "home" position when the system is powered up or on demand. You sense that the steppers have reached their home position by using a microswitch or other variety of limit switch
Since stepper motors have no built in position reference like a servo you need to be able to "home" or establish a starting position each motor. That is usually done with some sort of switch. The switch may be mechanical, optical or magnetic.
Mechanical switches are often of the microswitch variety.
Optical switches can be of the reflective type or slotted.
The magnetic is either a reed (tiny mechanical) switch or the Hall Effect switch. Either will respond to a magnet's proximity.
I have used all three types in various projects with good results.
Hi, @lordmax2
sorry for my mistake but
I checked it now, and this encoder I indicated is not absolute. it's incremental.
Will the step motor you are going to use make more than one turn around the axis itself?
If not, use a potentiometer coupled to its axis, thus measuring the resistance of the potentiometer with the analog input of the arduino, you will know where exactly the motor wire is.
A potentiomentre works at + - 300 degrees.
And there are also 10-turn potentiometers.