Hướng dẫn kết nối a4988 với shield v năm 2024
Mạch điều khiển động cơ bước Stepper Motor A4988 Module được sử dụng rộng rãi cho Reprap trong máy in 3D kèm với board RAMPS 1.4. Dùng với board CNC Shield v3 cho CNC mini. Hoặc dùng điều khiển động cơ bước. Show
Mạch điều khiển động cơ bước A4988 là driver điều khiển động cơ bước cực kỳ nhỏ gọn, hỗ trợ nhiều chế độ hoạt động của động cơ bước như: Full, 1/2, 1/4 , 1/8 và 1/16. Ngoài ra, Module này thể điều chỉnh dòng tối đa thông qua một biến trở. Cho phép động cơ bước hoạt động với công suất tối đa. Chế độ bảo vệ sẽ tự động ngắt điện khi quá nóng. CÁC TÍNH NĂNG CỦA A4988 MODULE
THÔNG SỐ KỸ THUẬT CỦA STEPPER MOTOR A4988 MODULEĐiện áp hoạt động 8V~35V Dòng liên tục trên mỗi pha 1A~2A Điện áp logic 3V-5.5V 5 chế độ điều khiển bước Full, 1/2, 1/4, 1/8, 1/16 Kích thước 15,24 x 20,32cm Điều kiển động cơ bước với A4988 ModuleNếu các bạn đang có dự định chế một máy in 3D hoặc một máy Laser CNC Mini thì module A4988 cực kỳ thích hợp để sử dụng. Nếu bạn đã từng sử dụng qua máy in 3D thì Driver A4988 Arduino là một module không có gì xa lạ. Để nắm rõ hơn cách thức hoạt động và cấu tạo bên trong của A4988 thì các bạn không nên bỏ qua bài viết này. Để tạo động lực cho Team Arduino KIT ra nhiều bài viết chất lượng hơn, các bạn có thể ủng hộ mình bằng cách Donate qua MoMo, Ngân hàng, Paypal…Nhấn vào link bên dưới nhé. Xem ngay: Điều khiển động cơ bước Stepper Motor bằng IC L293D và Arduino Driver điều khiển động cơ bước A4988A4988 là một loại chip điều khiển động cơ bước đơn giản và mạnh mẽ. Nó được sử dụng rộng rãi trong các ứng dụng Arduino. Với những chức năng như điều khiển dòng động cơ, điều chỉnh tốc độ, và chế độ hoạt động microstep. Để sử dụng A4988 Arduino, bạn cần kết nối các chân đầu vào như STEP (điều khiển bước), DIR (điều khiển hướng), và ENABLE (kích hoạt) từ Arduino. Bạn cũng cần cung cấp nguồn điện và kết nối động cơ bước vào các chân đầu ra. Thông số kỹ thuậtDưới đây là một số tính năng và thông số kỹ thuật quan trọng của chip A4988:
Sơ đồ chân Driver điều khiển động cơ bước A4988Chân nguồn (Power Pins)Trong Driver A4988, các Power Pins (chân nguồn) bao gồm:
Lưu ý rằng các chân nguồn này cần được đấu nối chính xác và đúng điện áp để đảm bảo Driver A4988 arduino hoạt động đúng. Nếu điện áp không đúng, có thể gây hư hỏng cho chip và động cơ hoặc làm giảm hiệu suất. Xem ngay: Điều khiển động cơ DC, Stepper Motor và Servo bằng Motor Shield L293D & Arduino Chân lựa chọn microstep (Microstep Selection Pins)Chân lựa chọn microstep (Microstep Selection Pins) trong Driver A4988 là các chân đầu vào trên module điều khiển động cơ bước A4988 để thiết lập chế độ hoạt động microstep của động cơ bước. Driver A4988 hỗ trợ các chế độ microstep như full step, half step, 1/4 step, 1/8 step và 1/16 step. Bằng cách kết hợp các chân microstep selection (MS1, MS2 và MS3) với mức điện áp (VREF) được cấp cho chân REF pin, bạn có thể lựa chọn chế độ microstep phù hợp với yêu cầu. Dưới đây là bảng mô tả cách lựa chọn chế độ microstep bằng các chân microstep selection trên Driver A4988: MS1 Pin MS2 Pin MS3 Pin Chế độ microstep LOW LOW LOW Full step HIGH LOW LOW Half step LOW HIGH LOW 1/4 step HIGH HIGH LOW 1/8 step HIGH HIGH HIGH 1/16 step Bằng cách cấu hình các chân microstep selection theo ý muốn, bạn có thể điều chỉnh độ phân giải và độ chính xác của động cơ bước khi hoạt động. Chân điều khiển đầu vào (Control Input Pins)Chân điều khiển đầu vào được sử dụng để điều khiển hoạt động của động cơ bước. Các chân này bao gồm:
Chân điều khiển các trạng thái nguồn (Pins For Controlling Power States)Có ba chân được sử dụng để điều khiển các trạng thái nguồn (power states) của driver và động cơ bước. Các chân này bao gồm:
Các chân EN, RST và SLP cần được kết nối chính xác theo datasheet của Driver A4988 để điều khiển nguồn và trạng thái hoạt động của driver và động cơ bước. Chân đầu ra (Output Pins)Trong Driver A4988, có bốn chân đầu ra (output pins) được sử dụng để điều khiển các cuộn dây của động cơ bước. Các chân này được đánh số như sau: 1B, 1A, 2A, 2B Qua việc kiểm soát các chân đầu ra này, Driver A4988 thực hiện các xung điện để kích hoạt các cuộn dây của động cơ bước và tạo ra các bước xoay cần thiết để động cơ di chuyển. Chú ý rằng việc kết nối đúng các chân đầu ra với đúng cuộn dây của động cơ bước rất quan trọng để đảm bảo hoạt động chính xác của động cơ. Bạn cần tham khảo datasheet A4988 và sơ đồ chân của động cơ bước để kết nối chính xác các chân đầu ra với cuộn dây tương ứng. Tản nhiệt (Heatsink)Heatsink (tản nhiệt) là một thành phần được sử dụng để giải nhiệt cho vi mạch điện tử bên trong driver. Vì trong quá trình hoạt động, driver có thể tạo ra lượng nhiệt cao do tổn thất công suất. Tản nhiệt là một tấm kim loại có thiết kế vừa với diện tích tiếp xúc của IC A4988. Heatsink được gắn trực tiếp lên driver điều khiển động cơ bước A4988 arduino để hút nhiệt từ vi mạch và truyền nhiệt ra không khí xung quanh, giúp làm mát driver và duy trì nhiệt độ hoạt động an toàn. Giới hạn dòng điện (Current limiting)Cách 1Trong cách đầu tiên này, mình sẽ dùng phương pháp giới hạn dòng điện trong động cơ bước NEMA 17 thông qua đo điện áp (Vref) tại chân “ref”. Vì động cơ bước NEMA 17 có thông số 200 bước/vòng, và điện áp sử dụng 12V 350mA nên để giới hạn dòng điện của động cơ này bạn có thể làm theo các bước sau:
Vref = Current Limit / 2.5
Cách 2Trong cách thứ 2 này, mình sẽ dùng phương pháp giới hạn dòng điện được xác định bằng cách đo dòng điện chạy qua cuộn dây. Bằng cách đấu nối theo sơ đồ bên dưới, sử dụng một tua vít nhỏ, điều chỉnh biến trở cho đến khi đạt được dòng điện định mức. Linh kiện cần thiết cho dự ánTÊN LINH KIỆN SỐ LƯỢNG NƠI BÁN Arduino Uno R3 1 Shopee | Cytron Driver A4988 1 Shopee | Cytron Động cơ bước NEMA 17 1 Shopee | Cytron Đồng hồ đo ZOYI ZT S4 1 Shopee | Cytron Dây cắm 10-20 Shopee | Cytron Sơ đồ đấu nối Driver điều khiển động cơ bước A4988 với ArduinoCode – Không sử dụng thư việnĐoạn code bên dưới sẽ làm động cơ bước NEMA 17 quay theo hướng kim đồng hồ rồi đổi hướng ngược chiều kim đồng hồ và quay nhanh. Khi động cơ quay, mỗi lần bước xoay sẽ có thời gian chờ giữa các bước để tạo ra tốc độ và hướng quay mong muốn. // Define pin connections & motor's steps per revolution const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; void setup() { // Declare pins as Outputs pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); } void loop() { // Set motor direction clockwise digitalWrite(dirPin, HIGH); // Spin motor slowly for(int x = 0; x < stepsPerRevolution; x++) { }
delay(1000); // Wait a second
// Set motor direction counterclockwise
digitalWrite(dirPin, LOW);
// Spin motor quickly
for(int x = 0; x < stepsPerRevolution; x++)
{ }
delay(1000); // Wait a second
}Giải thích Code// Define pin connections & motor's steps per revolution const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; Đầu tiên, cần khai báo các chân kết nối và số bước quay của động cơ:
void setup() { // Declare pins as Outputs pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); } Trong hàm setup(), các chân kết nối được khai báo là đầu ra (OUTPUT) để điều khiển động cơ bước NEMA 17. void loop() { // Set motor direction clockwise digitalWrite(dirPin, HIGH); // Spin motor slowly for(int x = 0; x < stepsPerRevolution; x++) { }
delay(1000); // Wait a second
// Set motor direction counterclockwise
digitalWrite(dirPin, LOW);
// Spin motor quickly
for(int x = 0; x < stepsPerRevolution; x++)
{ }
delay(1000); // Wait a second
}Trong hàm loop(), quá trình điều khiển động cơ được thực hiện: Đầu tiên, hướng quay của động cơ được đặt là theo chiều kim đồng hồ bằng cách đưa giá trị HIGH vào // Define pin connections & motor's steps per revolution const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; 0.
Hướng quay của động cơ được đặt ngược chiều kim đồng hồ bằng cách đưa giá trị LOW vào dirPin.
Cuối cùng, sử dụng hàm delay(1000) và chờ một giây trước khi lặp lại quá trình. Code – Sử dụng thư viện AccelStepperCài đặt thư việnĐể cài đặt thư viện AccelStepper trên Arduino IDE, các bạn cần làm theo các bước sau: Sketch > Include Libraries > Manage Libraries… Nhập vào ô tìm kiếm tư khóa “accelstepper” chọn phiên bản mới nhất và tiến hành Download. CodeTrong ví dụ này mình sẽ sử dụng thư viện AccelStepper để điều khiển một động cơ bước thông qua Arduino. Đoạn code sẽ điều khiển động cơ bước quay theo một hướng với tốc độ, gia tốc, và vị trí mục tiêu đã được thiết lập, sau đó thay đổi hướng quay khi đạt đến vị trí mục tiêu. Quá trình này được lặp lại trong vòng lặp loop(). // Include the AccelStepper Library include // Define pin connections const int dirPin = 2; const int stepPin = 3; // Define motor interface type define motorInterfaceType 1// Creates an instance AccelStepper myStepper(motorInterfaceType, stepPin, dirPin); void setup() { // set the maximum speed, acceleration factor, // initial speed and the target position myStepper.setMaxSpeed(1000); myStepper.setAcceleration(50); myStepper.setSpeed(200); myStepper.moveTo(200); } void loop() { // Change direction once the motor reaches target position if (myStepper.distanceToGo() == 0) // Move the motor one step
myStepper.run();
}Giải thích Code// Include the AccelStepper Library include Đầu tiên cần khai báo thư viện AccelStepper.h để điều khiển động cơ bước NEMA 17. // Define motor interface type define motorInterfaceType 1Tiếp theo, kiểu Driver động cơ bước A4988 arduino được định nghĩa thông qua // Define pin connections & motor's steps per revolution const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; 5. Trong ví dụ này, Driver sử dụng các chân STEP và DIRECTION. // Creates an instance AccelStepper myStepper(motorInterfaceType, stepPin, dirPin); Sau đó, một đối tượng myStepper của lớp AccelStepper được khởi tạo với các tham số là kiểu chân STEP và chân DIRECTION.. |