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); }