TB6600 Stepper Motor Driver Драйвер для шагового двигателя (общий вид)


Характеристики драйвера TB6600
Входной ток 0…5A;
Выходной ток 0.5…4.0A;
DC 9…42V;
Максимальная мощность 160W;
Максимальная частота ШИМ 200кГц;
Температура эксплуатации от -10 до +45℃;
Габариты 96x56x33 mm;
Вес 0.2 кг;
Микросхема привода TB67S109AFTG.
8 типов микрошагов NC, 1(200), 2/A(400), 2/B(400), 4(800), 8(1600), 16(3200), 32(6400)
8 типов регулирования тока 0,5 А, 1А, 1,5А, 2А, 2,5А, 2,8А, 3,0А, 3,5А
A+,A- подключение I фазной обмотки шагового двигателя;
B+,B- подключение II фазной обмотки шагового двигателя;
PUL (STEP) – генерирует тактовые импульсы для запуска шагового двигателя (активный уровень — 1);
DIR – логический сигнал для установки направления двигателя, смена направления вращения;
осуществляется при отсутствии импульсов на пине PUL; (при изменении состояния должно пройти не менее 10 мкс до подачи импульса на вход «PUL») (активный уровень — 1);
ENA – разрешающий сигнал, отключение и включение двигателя (активный уровень — 0).
Таблица настройки частоты вращения двигателя драйвера шагового двигателя TB6600
| Microstep | Pulse/rev | s1 | s2 | s3 |
| NC | NC | ON | ON | ON |
| 1 | 200 | ON | ON | OFF |
| 2/A | 400 | ON | OFF | ON |
| 2/B | 400 | OFF | ON | ON |
| 4 | 800 | ON | OFF | OFF |
| 8 | 1600 | OFF | ON | OFF |
| 16 | 3200 | OFF | OFF | ON |
| 32 | 6400 | OFF | OFF | OFF |
Таблица токов драйвера шагового двигателя TB6600
| Current(A) | PK Current | s4 | s5 | s6 |
| 0.5 | 0.7 | ON | ON | ON |
| 1.0 | 1.2 | ON | OFF | ON |
| 1.5 | 1.7 | ON | ON | OFF |
| 2.0 | 2.2 | ON | OFF | OFF |
| 2.5 | 2.7 | OFF | ON | ON |
| 2.8 | 2.9 | OFF | OFF | ON |
| 3.0 | 3.2 | OFF | ON | OFF |
| 3.5 | 4.0 | OFF | OFF | OFF |
Схема подключения TB6600 Nema 17 к Arduino Nano

Вид подключаемого шагового двигателя Nema 17


Схема обмоток шагового двигателя

Пример скетч работы шагового двигателя Nema 17 и драйвера TB6600 Arduino
#define MOTOR_PUL_PIN 9
#define MOTOR_DIR_PIN 8
#define MOTOR_ENA_PIN 5
void setup() {
pinMode (MOTOR_PUL_PIN, OUTPUT);
pinMode (MOTOR_DIR_PIN, OUTPUT);
pinMode (MOTOR_ENA_PIN, OUTPUT);
}
void loop() {
// мотор крутится по часовой стрелки
for (int i=0; i<3200; i++)
{
digitalWrite(MOTOR_DIR_PIN,HIGH);
digitalWrite(MOTOR_ENA_PIN,HIGH);
digitalWrite(MOTOR_PUL_PIN,HIGH);
delayMicroseconds(200);
digitalWrite(MOTOR_PUL_PIN,LOW);
delayMicroseconds(200);
}
// мотор крутится по против часовой стрелки
for (int i=0; i<3200; i++)
{
digitalWrite(MOTOR_DIR_PIN,LOW);
digitalWrite(MOTOR_ENA_PIN,HIGH);
digitalWrite(MOTOR_PUL_PIN,HIGH);
delayMicroseconds(200);
digitalWrite(MOTOR_PUL_PIN,LOW);
delayMicroseconds(200);
}
}
Пример скетча работы шагового двигателя один полный оборот 360 градусов Nema 17 и драйвера TB6600 Arduino
#define MOTOR_PUL_PIN 9
#define MOTOR_DIR_PIN 8
#define MOTOR_ENA_PIN 5
//временная задержка между шагами 1 мс
const int delay_pause = 1;
void setup() {
pinMode (MOTOR_PUL_PIN, OUTPUT);
pinMode (MOTOR_DIR_PIN, OUTPUT);
pinMode (MOTOR_ENA_PIN, OUTPUT);
}
void loop()
{
//устанавливаем начальный режим
digitalWrite(MOTOR_PUL_PIN, HIGH);
digitalWrite(MOTOR_DIR_PIN, LOW);
//направление вращения мотора против часовой стрелки
digitalWrite(MOTOR_DIR_PIN, HIGH);
// делаем 12800 шагов на 360 градусов оборот
for(int i = 0; i < 12800; i++)
{
digitalWrite(MOTOR_PUL_PIN, HIGH);
delay(delay_pause);
digitalWrite(MOTOR_PUL_PIN, LOW);
delay(delay_pause);
}
// пауза 5 секунд
delay(5000);
}
Код скорости вращения на драйвере TB6600 Arduino
#define Motor_PULSE_PIN 9
#define Motor_DIR_PIN 8
uint16_t motor_speed = 15;// скорость мотора
uint16_t motor_Hz = 6400 / 5 / 10; // 6400 пульсация 5 секунд со скоростью 10
void setup() {
Serial.begin(9600);
pinMode(Motor_DIR_PIN, OUTPUT);
pinMode(Motor_PULSE_PIN, OUTPUT);
}
void loop() {
uint16_t motor_speed_pusk=motor_speed * motor_Hz;
tone(Motor_PULSE_PIN, motor_speed_pusk);
}
