Minimum Speed of NEMA 17 Step Motor With Various Resolution of TB-6600 Step Motor Driver.

by rirmak in Circuits > Arduino

155 Views, 1 Favorites, 0 Comments

Minimum Speed of NEMA 17 Step Motor With Various Resolution of TB-6600 Step Motor Driver.

IMG20240830185402.jpg

In this project I tested minimim speed of NEMA 17 Step Motor with various resolution of TB-6600 Step Motor Driver.

Supplies

IMG20240830190129.jpg
IMG20240830190143.jpg
IMG20240830190152.jpg
IMG20240830190238.jpg
IMG20240830190203.jpg

Main Components

1) NEMA 17-HS4401 Step Motor

2) TB-6600 Step Motor Driver

3) Arduino UNO

4) 24 V 3A Power Supply


Other Components

5) Nema 17 Stepper Motor Holder

6) 350mm Lead Screw Nut - Trapezoidal T8 8mm

7) T8 Trapezoidal Nut Mounting Bracket

8) 3D Printer Flexible Coupling 5x8mm Coupler

9) KP 08 Pillow Block Bearing (Bore Diameter: 8mm)

10) 8mm Chrome-Plated Induction Hardened Shaft - 350mm

11) SK8 Aluminum Shaft Holder 8mm

12) 40x40x11mm Heatsink Block - Adhesive

13) Limit Switch

14) SCE8UU Linear Bearing

Fundamental Terms I

single step.png

Each single step consist of one high and one low duration. Sum of this duration is called Step Duration.


Step Duration (s) = 2 x Step Delay


Step Frequency (Hz) = 1/Step Duration

e.g.

Step Delay= 500 micro seconds (500 micro seconds for LOW and 500 microseconds for HIGH)

Step Duration= 2 x 500 micro seconds = 1000 micro seconds = 0.001 seconds

Step Frequency (Hz) = 1/Step Duration = 1/ 0.001 =1000 Hz

Fundamental Terms II

Motor Speed (RPM) = (Step Frequency (Hz) x 60 ) / Driver Resolution


e.g. If driver resolution is 800 steps per revolution

Motor Speed = (1000 Hz x 60) / 800 =75 RPM

How Tables Are Calculated

According to formulas above I have calculated possible values for each driver resolution.

When I tested the calculated values for each resolution, I removed the values ​​​​for which I could not get movement from the step motor.

Micro Step Settings of TB-6600

IMG20240830204919.jpg
TB6600-driver-Microstep-Table.png

NEVER CHANGE RESOLUTION SETTINGS WHEN THE DRIVER IS POWERED


ARDUINO C++ Code

e.g.

const int delayTime=500; // 500 micro seconds

....

....

 digitalWrite(stepPin, HIGH);

 delayMicroseconds(delayTime);

 digitalWrite(stepPin, LOW);

 delayMicroseconds(delayTime);

Full Step 200 Pulse Per Revolution

001-1.jpg

200 microsecond is the minimum stepDelay at 200 pulse/rev resolution. Noise level is high.

1/2 Step (400 Pulse/rev)

001-2.jpg

100 microsecond is the minimum stepDelay at 400 pulse/rev resolution.

1/4 Step (800 Pulse/rev)

001-3.jpg

60 microsecond is the minimum stepDelay at 800 pulse/rev resolution.

1/8 Step (1600 Pulse/rev)

001-4.jpg

30 microsecond is the minimum stepDelay at 1600 pulse/rev resolution.

1/16 Step (3200 Pulse/rev)

001-5.jpg

10 microsecond is the minimum stepDelay at 800 pulse/rev resolution.

1/32 Step (6400 Pulse/Rev)

001-6.jpg

1 microsecond is the minimum stepDelay at 800 pulse/rev resolution.

Summary

1/8 Step (1600 Pulse/rev) and higher resolutions may be suitable for stabil appications.

If I have time I will put youtube videos about these tests.

Maximum speed that I have tested are last row of tables.