Step motor misstep

Hello, I have Nema17HS4401 step motor, TB6600 driver and Arduino Due. To equalize 1 step to 1 degree, I am using 1.8:1 gear ratio. The motor has to make 360 degree with steps. The steps can be changed. There is no weight on system.

I set 600 microseconds delay to pulse. If I want to turn with 1 degrees, there is no problem. No problem with 2, 3, 4, 60, 180, 360. But If want to turn with 5 or 10, the motor turning false. It turns maybe 500 degree instead of 360 with 5 degree step. If i change pulse delay to 1800 or 2400, the problem has gone.

Could the motor or driver be broken? How can i understand that without buy new one?

I measured the resistance of motor with multimeter. No problem appears.

Can you tell more and be more specific ?

I read that some of the TB6600 modules have a Toshiba TB67S109A inside. I don't know if your module has that chip.
The TB67S109A can have a CLK (or STEP) input up to 100 kHz, that is 10 µs period, which is 5 µs for the high en 5 µs for the low level.

Have you heard about the XY problem ? https://xyproblem.info/
It feels as if you are looking for a solution which does not make sense. Do you want to replace a driver with stepper motor for a existing device ?

The software controls the number of steps. The TB6600 module sets the microstepping.
Do you need that gear for more strength or only to match the number of steps ?
Without microstepping and without smooth acceleration, a stepper motor might skip steps.
With 32 microsteps and without gears, you have an angle resolution of 0.06 degrees.

Please tell more.
What is the device that controls the DIR and STEP signal ?
Have you set the right current and the right microstepping on the TB6600 module ?
What is a 5 degree step ? I don't understand that.
Are the 1800 µs or 2400 µs the delay between the pulses of the STEP signal ? That is so much more than the 5 µs.

It is always possible that something is broken. Do you have another TB6600 driver and another stepper motor ?

Try the AccelStepper library with smooth start/stop moves.

Do you need a square wave? Can you send single pulses with timed intervals?

void singlepulse() {
  digitalWrite(stepPin, HIGH);
  // no delay
  digitalWrite(stepPin, LOW);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.