Điều khiển động cơ bước bằng module A4988 và Arduino Uno R3
Điều khiển động cơ bước bằng module A4988 và Arduino Uno R3
1. Giới thiệu về động cơ bước:
a. Động cơ bước là gì
Động cơ bước là một loại động cơ điện có nguyên lý và ứng dụng khác biệt với đa số các động cơ điện thông thường. Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định rôto vào các vị trí cần thiết.
Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.
b. Cách điều khiển động cơ bước
Động cơ bước không quay theo cơ chế thông thường, chúng quay theo từng bước nên có độ chính xác rất cao về mặt điều khiển học. Chúng làm việc nhờ các bộ chuyển mạch điện tử đưa các tín hiệu điều khiển vào stato theo thứ tự và một tần số nhất định. Tổng số góc quay của rôto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rôto phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi.
Dưới đây là dạng xung điều khiển cho động cơ bước đơn cực:
2. Giới thiệu module điều khiển động cơ bước a4988
Kích thước rất nhỏ gọn, chỉ bằng 1/2 thẻ SD
a. Thông số, chức năng
- Điều khiển đơn giản
- Điều khiển được động cơ hoạt động với điện áp lên tới 35V dòng lên tới 2A
- Có 5 chế độ: full bước, 1/2 bước, 1/4 bước, 1/8 bước, 1/16 bước
- Điểu chỉnh dòng ra bằng triết áp (bé xíu) nằm bên trên Current Limit = VREF × 2.5
- Tự động Shutdown khi quá nóng
- Bảo vệ ngắn mạch tải, bảo vệ dòng điện chéo
- Mạch chỉnh lưu đồng bộ giúp giảm lượng điện năng hao phí.
b. Sử dụng
Bật tắt động cơ thông qua chân ENABLE, mức LOW là bật module, mức HIGH là tắt
Điều khiển chiều quay của động cơ thông qua pin DIR
Điều khiển bước của động cơ thông qua pin STEP, mỗi xung là tương ứng với 1 bước (hoặc vi bước)
Chọn chế độ hoạt động bằng cách đặt mức logic cho các chân MS1, MS2, MS3
Hai chân Sleep với Reset nối với nhau luôn. (Tìm đọc datasheet để biết nguyên nhân)
Bảng chế độ hoạt động của module:
3. Điều khiển động cơ bước với module A4988 và Arduino Uno.
Các bạn nối dây theo chỉ dẫn như sau:
- Chân 4,5,6 của Arduino UNO nối lần lượt với chân DIR, STEP, ENABLE của module A4988
- Chân SLEEP và RESET nối với nhau
- Nguồn nuôi có thể dùng nguồn USB từ Arduino nếu bạn dùng những động cơ 5V có công suất nhỏ như 28BYJ48,
Code lập trình:
Chạy 1 vòng động cơ 28BYJ48, nghỉ 1s sau đó đảo chiều, chạy liên tục.
long x;
void setup()
{
pinMode(6,OUTPUT); // Enable
pinMode(5,OUTPUT); // Step
pinMode(4,OUTPUT); // Dir - chiều quay
digitalWrite(6,LOW); // Set Enable low - Enable mức thấp
}
void loop()
{
digitalWrite(6,LOW); // Set Enable low - Enable mức thấp
digitalWrite(4,HIGH); // Set Dir high - Set chiều quay mức cao
for(x = 0; x < 4096; x++) // lặp 4096 lần
{
digitalWrite(5,HIGH); // Output high - xung mức cao
delay(1); // Trễ 1ms
digitalWrite(5,LOW); // Output low - xung mức thấp
delay(3); // Trễ 3ms
}
// Serial.println("Pause");
delay(1000); // dừng 1 giây
digitalWrite(4,LOW); // Set Dir low - Set chiều quay mức thấp
for(x = 0; x < 4096; x++) // lặp 4096 lần
{
digitalWrite(5,HIGH); // Output high - xung mức cao
delay(1); // Trễ 1ms
digitalWrite(5,LOW); // Output low - xung mức thấp
delay(3); // Trễ 3ms
}
// Serial.println("Pause");
delay(1000); // dừng 1 giây
}
VIDEO GIỚI THIỆU VÀ HƯỚNG DẪN:
Để mua hàng các bạn hãy click vào sản phẩm cần mua nhé: A4988 : Arduino Uno R3 : 28BYJ48 : Bo test : Dây cắm