NẾU BẠN ĐÃ BIẾT TỚI ĐỘNG CƠ BƯỚC THÌ CHẮC CŨNG ĐÃ BIẾT VỀ DRIVER ĐIỀU KHIỂN #A4988
Hôm nay cùng tìm hiểu driver điều khiển động cơ bước A4988 một chút để xem nó ứng dụng điều khiển động cơ cùng với Arduino như thế nào nhé
Vậy động cơ bước là gì mà nó có thể làm được máy CNC vậy
– Động cơ bước là loại động cơ mà chúng ta hoàn toàn có thể quy đình góc quay của nó (mình sẽ có một bài chi tiết nói về động cơ bước sau nhé) và A4988 hoàn toàn có thể làm được việc đó chỉ với 2 chân dù động cơ bước có nhiều chân điều khiển tới đâu (cái này cũng có một phần là đúng) trong đó
1 chân để điều khiển số bước còn 1 chân để điều khiển hướng.
– Nghe điều này có vẻ kì diệu nhưng mà muốn động cơ hoạt động ổn định thì vẫn cần đầy đủ các chân của driver nhé (không nó làm nhiều chân để làm gì anh em).
Với module driver A4988 tất nhiên ta có con chip A4988 làm trung tâm và 16 chân ra phục vụ cho các mục đích điều khiển. Chúng ta cùng làm rõ ở bên dưới
Đầu tiên là nguồn : có 2 bộ nguồn ở đây
Chân VDD và GND là nguồn cấp cho module A4988 (3-5.5V) cái này thường được cấp bởi #Arduino hoặc mọi người có thể dùng nguồn ngoài đều được.
Chân VMOT và GND là nguồn cấp cho động cơ bước (8-35V) lưu ý là anh em không chọn động cơ điện áp hoạt động quá 35V nhé không gây quá áp, vì vậy để bảo vệ điều này (trong datasheet có nói anh em) anh em nên lắp thêm con tụ ít nhất là 47uF và tham khảo datasheet ở đây nhé
Chân kết nối với động cơ bước 1A-1B,2A-2B để nối với 2 cuộn dây của động cơ bước( khá đơn giản)
Chân chọn kích thước bước hay còn gọi là độ phân giải MS1,MS2,MS3 bằng cách đặt mức logic thích hợp ta có thể chọn 1 trong 5 chế độ độ phân giải bước:
Full step (bước đủ)
Half step (một nửa bước)
Quarter step (một phần tư bước)
Eighth step (một phần tám bước)
Sixteenth step (một phần mười sáu bước)
Ở trong mỗi chân đều có nội trở kéo xuống LOW, mà thông thường chúng ta cứ Full step mà chơi cho nên chúng ta không kết nối gì thì động cơ sẽ hoạt động với chê độ bước đủ.
Giờ đến 2 chân đầu vào điều khiển STEP và DIR
Chân STEP điều khiển số bước của động cơ (đã được chọn ở chân MS1,MS2,MS3) khi nhận được xung HIGH từ Arduino. Và khi xung HIGH này cành nhanh thì động cơ sẽ quay càng nhanh ở đây mình thấy trong datasheet và anh em hay sử dụng ở trong code là 200 xung (cái này mình cũng chưa rõ lắm để mình tìm hiểu thêm)
Chân DIR điều khiển hướng quay của động cơ (này thì đơn giản rồi nha anh em)
+ Khi tín hiệu đầu vào HIGH thì sẽ điều khiển động cơ theo chiều kim đồng hồ
+ Khi tín hiệu đầu vào LOW thì sẽ điều khiển động cơ ngược chiều kim đồng hồ
3 đầu vào để kiểm soát nguồn của A4988
Chân EN mặc định là ở mức logic LOW chân này giống nút nguồn A4988 sẽ tắt khi kích tín hiệu vào là HIGH
Chân SLP (SLEEP) chân này hoạt động ở mức logic LOW vì vậy nó được kích hoạt để đảm bảo động cơ không sử dụng thì sẽ tiết kiệm điện, module sẽ không phải làm việc liên tục.
Chân RST(RESET) chân này không cần nói ai cũng biết là nó đưa động cơ về vị trí 0.
Sang đến phần lắp đặt thì chúng ta phải chuẩn bị những gì
Chúng ta phải chuẩn bị sơ sơ vài thứ:
Động cơ bước : theo như mình chọn động cơ bước thì mình hay quan tâm mấy thông số (anh em chọn động cơ bước hay quan tâm thông số nào thì bình luận ở dưới để mình cùng biết nhé)
+ Độ phân giải (độ/step)
+ Điện áp sử dụng (tất nhiên trong trường hợp này đừng lớn hơn 35V nhé
+ Dòng sử dụng
+ Đường kính trục động cơ (nếu trong trường hợp với máy in 3D với CNC thì chọn sao cho phù hợp với vít me và dây đai)
+ Nhiều dự án mình cũng phải quan tâm đến khối lượng (kg) nhưng có lẽ cái này đối với anh em cũng không quan trọng lắm
+ Mua đồ cũ hay mới (hãy mua đồ phù hợp với túi tiền của anh em nhé)
Driver A4988 tất nhiên phải có
Bộ nguồn 12V
Arduino Uno R3
Tụ 47uF
Dây nối
Anh em nên sử dụng đế tản nhiệt , cái này khá cần thiết anh em nên sắm để bảo vệ cả động cơ lẫn mạch vì mạch nào mình không rõ nhưng mình thấy động cơ bước và con A4988 nóng lên rất nhanh khi sử dụng nhiều.
+ Bài này mình nói ngoài lề hơi nhiều có lẽ đây là lần cuối anh em có thể bỏ qua cũng được: Trên module A4988 có thêm một con biến trở để thay đổi giới hạn định mức của động cơ, trong trường hợp này chúng ta sử dụng đồng hồ điện để đo áp qua cuộn dây của động cơ bước, từ đó ta sẽ điều chỉnh biến trở trên module A4988 để chỉnh lại sao cho áp đó đúng với datasheet của động cơ.
Giờ đến phần kết nối A4988
Chân nguồn VMOT vào nguồn 12V
Chân VDD vào chân 5V của Arduino
Chân 1A & 1B và 2A & 2B đấu vào 4 chân đầu ra của 2 cuộn dây
Chân DIR – chân 2 của Arduino
Chân STEP – chân 3 của Arduino
Chân RST của A4988 – chân SLP của A4988 giữ cho mạch hoạt động.
Giờ đã chuẩn bị mọi thứ xong ta vào phần viết code cho mạch cũng đơn giản thôi. Anh em tham khảo ở dưới nhé
// Việt hóa by Linh kiện nông nghiệp NBN
const int dirPin = 2; // setup chân DIR
const int stepPin = 3; // setup chân STEP
const int stepsPerRevolution = 200; // thiết lập giá trị phân giải cho bước
void setup()
{
pinMode(stepPin, OUTPUT); // khai báo chân đầu ra
pinMode(dirPin, OUTPUT);
}
void loop()
{
// Set động cơ quay theo chiều kim đồng hồ
digitalWrite(dirPin, HIGH);
// Động cơ quay chậm khi xung nhỏ
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(1000); // Delay
// Set động cơ quay ngược chiều kim đồng hồ
digitalWrite(dirPin, LOW);
// Cho động cơ quay nhanh hơn để test
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
}
delay(1000); // Delay
}