Tính năng của trình điều khiển động cơ bước TB6600
TB6600 là trình điều khiển động cơ bước chuyên nghiệp dễ sử dụng mà bạn có thể điều chỉnh các bước nhỏ của nó. Mô-đun này có thể điều khiển động cơ bước hai pha. Một tính năng chính của mô-đun này là bạn có thể thay đổi cài đặt microstep bằng các công tắc tích hợp trên trình điều khiển.
Các mô-đun này có một số chức năng an toàn như sau:
- Bảo vệ quá dòng
- Bảo vệ sụt áp
- Bảo vệ quá nhiệt
Sơ đồ chân của trình điều khiển động cơ bước TB6600 4A
Nguồn
- VCC : Cấp nguồn 9V – 42V.
- GND : Cấp nguồn 0V.
- A+, A-: Ngõ ra cuộn 1 kích động cơ bước
- B+, B- : Ngõ ra cuộn 2 kích động cơ bước
Tín hiệu
- PUL+, PUL- : Tạo xung điều khiển động cơ.
- DIR+, DIR- : Lựa chọn quay thuận nghịch.
- ENA+, ENA- : Cho phép hoạt động.
Chân | Mô tả chân |
ENA-(ENA) | Enable Pin(-) |
ENA+(+5V) | Enable(+5V) |
DIR-(DIR) | Tín hiệu cấp xung đảo chiều (-) |
DIR+(+5V) | Tín hiệu cấp xung đảo chiều (+5V) |
PUL-(PUL) | Tín hiệu cấp xung điều khiển bước quay động cơ (-) |
PUL+(+5V) | Tín hiệu cấp xung điều khiển bước quay động cơ (+5V) |
B- | Cuộn dây 1 động cơ bước |
B+ | Cuộn dây 1 động cơ bước |
A- | Cuộn dây 2 động cơ bước |
A+ | Cuộn dây 2 động cơ bước |
GND | Điện áp (-) âm của nguồn |
VCC | Điện áp đầu vào (9-40V) |
Ghi chú
- Có thể đấu tín hiệu dương (+) chung hoặc tín hiệu âm (-) chung
Công tắc điều khiển trình điều khiển động cơ bước TB6600
Các công tắc này được sử dụng để điều khiển độ phân giải microstep và giới hạn dòng điện của trình điều khiển .
Bạn có thể thay đổi độ phân giải microstep từ bước đầy đủ thành 1/32 bước bằng cách chuyển công tắc S1, S2 và S3.
Cài đặt vi bước cho driver
Bảng vi thiết lập vi bước được sử dụng để cài đặt chế độ vi bước cho động cơ bước. Chế độ vi bước xác định độ chính xác của chuyển động của động cơ bước. Số bước vi bước càng cao, thì chuyển động của động cơ bước càng chính xác.
Chế độ vi bước (Microstep) | Số bước vi bước mỗi vòng (Pulse/rev) | Độ phân giải | SW1 | SW2 | SW3 |
NC | NC | ON | ON | ON | |
1 | 200 | 1.8° | ON | ON | OFF |
1/2A | 400 | 0.9° | ON | OFF | ON |
1/2B | 400 | 0.9° | OFF | ON | ON |
1/4 | 800 | 0.45° | ON | OFF | OFF |
1/8 | 1600 | 0.225° | OFF | ON | OFF |
1/16 | 3200 | 0.1125° | OFF | OFF | ON |
1/32 | 6400 | 0.05625° | OFF | OFF | OFF |
Cách sử dụng bảng vi thiết lập vi bước:
- Xác định số bước vi bước mỗi vòng của động cơ bước. Thông tin này thường được ghi trên nhãn động cơ bước hoặc trong tài liệu kỹ thuật của nhà sản xuất.
- Xác định độ phân giải mong muốn cho chuyển động của động cơ bước.
- Sử dụng bảng vi thiết lập vi bước để tìm chế độ vi bước phù hợp với số bước vi bước mỗi vòng và độ phân giải mong muốn.
- Cài đặt chế độ vi bước đã chọn trên trình điều khiển động cơ bước.
Ví dụ:
Giả sử bạn có động cơ bước với 400 bước vi bước mỗi vòng và bạn muốn động cơ bước di chuyển với độ phân giải 0.45°. Theo bảng vi thiết lập vi bước, bạn nên chọn chế độ vi bước 1/4.
Bạn có thể điều chỉnh dòng điện đi đến động cơ khi nó đang chạy bằng cách bật hoặc tắt các công tắc S4, S5 và S6.
I(A) | PK(A) | SW4 | SW5 | SW6 |
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 |
Phần cứng cần thiết
- Arduino UNO R3
- Trình điều khiển động cơ bước TB6600 4A
- OK17STH47 Động Cơ Bước Nema17 42x42mm, 1.8°, 0.46N.cm
- Dây jumper đực sang đực
Giao tiếp trình điều khiển động cơ bước TB6600 với Arduino
Ghi chú
- Bạn có thể sử dụng đồng hồ vạn năng để tìm hai dây từ một cuộn dây.
- Vặn đồng hồ vạn năng sang thang đo ngắn mạch và thử nghiệm các dây dẫn theo cặp. Hai dây dẫn bị đoản mạch khi mắc vào đồng hồ vạn năng là hai phía của một cuộn dây.
- Bạn có thể giới hạn dòng điện bằng các công tắc trên module tùy theo nguồn điện mà bạn đã chọn.
- Mình đã kết nối mặt dương của các chân điều khiển với 5V và điều khiển các chân này bằng cách ra lệnh cho mặt tích cực. (LOW/THẤP)
Ví dụ 1: Động cơ quay thuận 3 vòng, dừng 1s sau đó quay nghịch 3 vòng, dừng 1s và lặp lại vô tận.
Bước 1: Kết nối mạch
ARDUINO | TB6600 | STEP MOTOR |
5V | ENA+, DIR+, PUL+ | |
D9 | PUL- | |
D10 | DIR- | |
D11 | ENA- | |
A+, A- | Cặp cuộn dây 1 động cơ bước | |
B+, B- | Cặp cuộn dây 2 động cơ bước | |
GND (0V) | ||
VCC (Cấp nguồn 9~42V) |
Bước 2: Code
Tải code sau lên Arduino.
#define stepPin 9
#define dirPin 10
#define enPin 11
const int stepsPerRevolution = 200; // Số bước mỗi vòng (thường là 200 cho động cơ bước 1.8 độ)
void setup() {
// Declare pins as output:
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
}
void loop() {
runMotor(CW, 3, 500); //Quay thuận 3 vòng
delay(1000);
runMotor(CCW, 3, 500); //Quay nghịch 3 vòng
delay(1000);
}
void runMotor(int dir, int numberOfRevolutions, int stepSpeed) {
digitalWrite(enPin, HIGH);
digitalWrite(dirPin, dir); // Enables the motor to move in a particular direction
for (int x = 0; x < numberOfRevolutions * stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepSpeed);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepSpeed);
}
digitalWrite(enPin, LOW);
}
void runMotor(int dir , int stepSpeed) {
digitalWrite(enPin, HIGH);
digitalWrite(dirPin, dir); // Enables the motor to move in a particular direction
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepSpeed);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepSpeed);
digitalWrite(enPin, LOW);
}
Ví dụ 2: Điều khiển động cơ bước bằng nút nhấn. Nhấn nút Key 1 động cơ quay thuận 3 vòng, dừng 1s sau đó quay nghịch 3 vòng. Nhấn nút Key 2 động cơ quay thuận, Nhấn nút Key 3 động cơ quay nghịch.
Bước 1: Kết nối mạch
ARDUINO | TB6600 | STEP MOTOR | Keypad |
5V | ENA+, DIR+, PUL+ | VCC | |
GND | GND | ||
A0 | Key 1 | ||
A1 | Key 2 | ||
A2 | Key 3 | ||
A3 | Key 4 | ||
D9 | PUL- | ||
D10 | DIR- | ||
D11 | ENA- | ||
A+, A- | Cặp cuộn dây 1 động cơ bước | ||
B+, B- | Cặp cuộn dây 2 động cơ bước | ||
GND (0V) | |||
VCC (Cấp nguồn 9~42V) |
Bước 2: Code
Tải code sau lên Arduino.
#define stepPin 9
#define dirPin 10
#define enPin 11
#define CW LOW
#define CCW HIGH
#define btnStart A0
#define btnCW A1
#define btnCCW A2
#define btnStop A3
const int stepsPerRevolution = 200; // Số bước mỗi vòng (thường là 200 cho động cơ bước 1.8 độ)
void setup() {
// Declare pins as output:
Serial.begin(9600);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
pinMode(btnStart, INPUT_PULLUP);
pinMode(btnCW, INPUT_PULLUP);
pinMode(btnCCW, INPUT_PULLUP);
}
void loop() {
if (digitalRead(btnStart) == LOW) {
runMotor(CW, 3, 500); //Quay thuận 3 vòng
delay(1000);
runMotor(CCW, 3, 500); //Quay nghịch 3 vòng
while (digitalRead(btnStart) == LOW);
}
if (digitalRead(btnCW) == LOW) {
runMotor(CW, 500);
}
if (digitalRead(btnCCW) == LOW) {
runMotor(CCW, 500);
}
}
void runMotor(int dir, int numberOfRevolutions, int stepSpeed) {
digitalWrite(enPin, HIGH);
digitalWrite(dirPin, dir); // Enables the motor to move in a particular direction
for (int x = 0; x < numberOfRevolutions * stepsPerRevolution; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepSpeed);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepSpeed);
}
digitalWrite(enPin, LOW);
}
void runMotor(int dir , int stepSpeed) {
digitalWrite(enPin, HIGH);
digitalWrite(dirPin, dir); // Enables the motor to move in a particular direction
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepSpeed);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepSpeed);
digitalWrite(enPin, LOW);
}
Nhận xét