Help needed for wiring stepper motor/controller

hi,
i have a new stepper motor #1200 (4V, 1200mA) and a #2133 stepper motor driver.
i read the wiring schematics and also the hints for current sensing/limiting, but i am a complete newbie at this hardware and i do’nt want to destroy one of my components before getting familiar to it.

so please can you give me a smal summary where i have to take care before starting to measure something?

i want to control the driver via my orangutan svp1284 and i have an external 12V power supply. can i wire it all like described and start the stepper motor? it has a coil voltage of 4v. does that mean that i have to limit the current before powering up? but i do not know in which position the potentiometer should be before starting?

i hope my questions are not too stupid??

thanks!

Hello.

In general, there are many ways to damage components, but a good precaution you can take is to disconnect power before making or changing any connections.

You should follow the wiring diagram on the driver’s product page when making your connections. You should also set the current limit before connecting your stepper motor to the driver. The section on current limiting on the product page is a good guide on how to do this. If there is something specific you do not understand about either the wiring diagram or current limiting, please point it out and I will try to clarify.

  • Grant

thank you, and yes, i have a specific, or lets say a very general question:

in the current-limiting-section it says “One way to set the current limit is to put the driver into full-step mode and to measure the current running through a single motor coil”.

what i don’t understand is the fact, that i have current flowing through my motor when i’m measuring the current. and it its too high, it could happen that the motor gets damaged during this first measuring process. or am i wrong? as i said, my power supply has 12v, but my stepper is 4V. can i just start measuring the current on a coil?

Hello.

There are several ways to set the current limit. If you do it by measuring the voltage on the “ref” pin, you do not need to have the stepper motor connected:

- Ben

thanks, ben. ist it the pin in the white circle close to the M2-pin? do i have to supply the motor power (VMOT and GND) or just the logic power supply?

another question: is there a program example somwhere for controlling the step frequency for the orangutan controller?

Yes, that is the pin. Motor power, VMOT, must be supplied, but you do not have to have a stepper motor connected to the driver outputs. Unfortunately, we do not have an Orangutan example. If you take a stab at a program and get stuck, I can give you some feedback.

- Ben

finally i wired the stepper driver with the stepper motor and my orangutan and the power supply.

what happens is the following:

when i switch on my orangutan, the stepper motor makes a short tick and then is in a stable position (the axle cannot be moved by hand). when i switch it off, the force is released and i can move the axle again.

what i realized is the fact that the stpper motor is getting quite warm after a few seconds. is that normal?

i wrote a small program on my orangutan, it looks like this:

int main()
{

while (1){

set_digital_output(IO_A7, HIGH);
delay_ms(30);
set_digital_output(IO_A7, LOW);
}
}

the “STEP” pin is connected with this “A7”-pin, but it doesen’t have any effect on the stepper motor. is it a completely wrong way of beginning?

What did you set the “ref” voltage to?

How are you powering everything? How do you have everything connected? Can you post a picture of your setup?

- Ben

finally i got the motor running. i only changed the programming to the following code, because there was a delay missing after “set_digital_output(IO_A7, LOW)”, and in order to that the motor didnt get a fresh impulse. i also changed the delay times. now the motor its running fluently at around 60 rpm.

the rev voltage is at 550 mV, that must be safe for my 1.2A Stepper Motor?

int main()
{

while (1){

set_digital_output(IO_A7, HIGH);
delay_ms(3);
set_digital_output(IO_A7, LOW);
delay_ms(1);
}
}

what do you think about the programming approach? and what about the length of the impulse and the relationship between setting the STEP-pin high or low? is there a documentation about that? what is the minimum pause between the impulses? i have the impression, that my stepper motor is running fluently now, but its vibrating (like a vibrating cellphone;-). is that normal? or can i optimize this by changing the values?

I am glad you have it working. Your current limit sounds right.

A lot of the questions you are asking are answered by the DRV8825 datasheet; have you tried looking at that? The low and high STEP pulses must each be at least 1.9 us long. It does not matter what percentage of the time the STEP pin is high vs low; what matters is the cycle time (high duration + low duration) as this sets the step frequency. For example, if you want one step per 10 ms, you can do a 5 ms high pulse on STEP followed by a 5 ms low pulse, or you can do a 2 us high pulse followed by a 10 ms low pulse; the stepper motor behavior will be the same for both cases.

Some amount of vibration is normal. You could try to decrease this by using microstepping, which would let you take smaller steps more often. You should probably start using the delayMicroseconds() function so that you have more control over the speed.

- Ben