The TB6600 is a stepper motor driver that converts STEP (PUL) and DIR (direction) input signals into controlled current for the motor coils labeled A+ and B+. An enable (ENA) input typically turns the driver outputs on or off, while GND provides the reference for the logic inputs. It needs motor power on its DC/V+/- inputs and logic power via VCC.
| Pin | Signal | Description |
|---|---|---|
DIR+ |
digital | Direction opto-input positive; logic level selects motor rotation direction |
DIR+ |
digital | Direction opto-input positive; logic level selects motor rotation direction |
PUL+ |
digital | Step pulse opto-input positive; each pulse advances the motor one microstep |
PUL+ |
digital | Step pulse opto-input positive; each pulse advances the motor one microstep |
GND |
ground | Motor supply negative/ground return for the 9–42 VDC power input |
ENA+ |
enable | Enable opto-input positive; used by controller to enable or disable the driver |
ENA+ |
enable | Enable opto-input positive; used by controller to enable or disable the driver |
A+ |
power | Stepper motor phase A positive output winding connection |
A+ |
power | Stepper motor phase A positive output winding connection |
B+ |
power | Stepper motor phase B positive output winding connection |
B+ |
power | Stepper motor phase B positive output winding connection |
VCC |
power-high | Motor supply positive input, typically 9–42 VDC for the driver power stage |
DIR+ |
digital | Direction opto-input positive; logic level selects motor rotation direction |
ENA- |
enable | Enable opto-input negative; used by controller to enable or disable the driver |
PUL+ |
digital | Step pulse opto-input positive; each pulse advances the motor one microstep |
A- |
power | Stepper motor phase A negetaive output winding connection |
B- |
power | Stepper motor phase B negative output winding connection |
PUL- |
digital | Step pulse opto-input negative; each pulse advances the motor one microstep |
DIR- |
digital | Direction opto-input negative; logic level selects motor rotation direction |
| From | To | Wire |
|---|---|---|
board:D2 |
x1:PUL+ |
green |
board:D3 |
x1:DIR+ |
blue |
board:D4 |
x1:ENA+ |
yellow |
board:GND |
x1:GND |
black |
x3:OUT+ |
x1:VCC |
red |
x3:OUT- |
x1:GND |
black |
x1:A+ |
x2:1A |
purple |
x1:A+ |
x2:1B |
purple |
x1:B+ |
x2:2A |
cyan |
x1:B+ |
x2:2B |
cyan |
This example was written and compile-checked for the arduino-uno. Codey Online adapts it to any other supported board for you.
// Canonical beginner example for the TB6600 stepper driver
// Arduino Uno + TB6600 + NEMA17 stepper motor
const int PUL_PIN = 2; // TB6600 PUL+
const int DIR_PIN = 3; // TB6600 DIR+
const int ENA_PIN = 4; // TB6600 ENA+
const int STEPS_PER_DIRECTION = 200;
const int STEP_DELAY_US = 800;
void stepMotor(int steps) {
for (int i = 0; i < steps; i++) {
digitalWrite(PUL_PIN, HIGH);
delayMicroseconds(STEP_DELAY_US);
digitalWrite(PUL_PIN, LOW);
delayMicroseconds(STEP_DELAY_US);
}
}
void setup() {
pinMode(PUL_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(ENA_PIN, OUTPUT);
digitalWrite(PUL_PIN, LOW);
digitalWrite(DIR_PIN, LOW);
digitalWrite(ENA_PIN, LOW);
Serial.begin(9600);
while (!Serial) {
;
}
Serial.println("TB6600 stepper driver demo starting...");
}
void loop() {
Serial.println("Rotate clockwise");
digitalWrite(DIR_PIN, HIGH);
stepMotor(STEPS_PER_DIRECTION);
delay(1000);
Serial.println("Rotate counter-clockwise");
digitalWrite(DIR_PIN, LOW);
stepMotor(STEPS_PER_DIRECTION);
delay(1000);
}
Describe what you want to build. Codey Online writes the code, draws the wiring diagram, compiles it and flashes your board straight from the browser.
Start for free