-
-
-
Tổng tiền thanh toán:
-
Điều khiển động cơ bước bằng mạch cầu H
16/06/2019
Hôm nay, mình sẽ hướng dẫn các bạn điều khiển động cơ bước cực kỳ đơn giản với mạch cầu H thông thường, sử dụng thư viện chuẩn của Arduino. Thay vì sử dụng những Driver điều khiển động cơ bước như những bài trước!!!
II. Chuẩn bị
- x1 Arduino UNO
- x1 Mạch cầu H (L298, L293, hoặc L9110,...)
- x1 động cơ bước 2 pha
- Test board, Dây cắm, phụ kiện,......
III. Động cơ bước là gì?
Trước tiên, để hiểu rõ hơn về động cơ bước. Các bạn tham khảo lại bài của bạn Tôi Yêu Arduino trong bài Hướng dẫn điều khiển động cơ bước với thư viện Accel Stepper và driver điều khiển động cơ bước A4988 hoặc DRV8825. Nôm na, động cơ bước là một loại động cơ mà ở đó bạn sẽ có thể quy định chính xác số góc quay và động cơ bước sẽ phải quay. Không giống như Servo, động cơ bước có thể quay bao nhiêu độ tùy ý và mỗi lần quay nó sẽ quay được 1 step, 1 step ở đây là bao nhiêu còn phụ thuộc vào động cơ bước của bạn. Ví dụ, động cơ bước của bạn có 72 step thì nó sẽ cần quay 72 step để hoàn thành một vòng quay. Số step này là hằng số, nhưng bạn có thể dùng công nghệ micro step để "cải thiện" số vòng quay động cơ bước của bạn.
IV. Tiến hành:
a. Nối dây
Arduino UNO | L298 | Động cơ bước |
8 | IN1 | |
9 | IN2 | |
10 | IN3 | |
11 | IN4 | |
OUT1 | A | |
OUT2 | A- | |
OUT3 | B | |
OUT4 | B- |
Như sơ đồ sau:
Lưu ý: Nếu động cơ bước loại 4 dây thì nối đủ dây là ok r. Nhưng nếu gặp loại 6 dây...cứ nối như sơ đồ, thừa dây thì kệ nhé (2 dây còn lại là dây Common - dùng cho công nghệ cũ, không cần quan tâm)
b. Code
Để điều khiển được động cơ bước thì các bạn dùng thư viện Stepper.h nhé. À mà, thư viện này là thư viện chuẩn của Arduino nên khi cài Arduino IDE nó có sẵn rồi á...không cần tải đâu!! hihe
- #include <Stepper.h>
- //Khai báo các chân để điều khiển Step...tạo đối tượng myStepper
- Stepper myStepper(stepsPerRevolution, 8,9,10,11);
- void setup() {
- // Tốc độ 100rpm
- myStepper.setSpeed(100);
- // initialize the serial port:
- Serial.begin(9600);
- }
- void loop() {
- // step one revolution in one direction:
- Serial.println("Quay theo chiều kim đồng hồ");
- myStepper.step(250);//Max Step của động cơ bước trong đầu DVD/CD là 250..hihe
- delay(500);
- // step one revolution in the other direction:
- Serial.println("Quay ngược chiều kim đồng hồ");
- myStepper.step(-250);
- delay(500);
- }
V. Lời kết
Chúc các bạn thành công, nếu các bạn có dự án hay hãy share lên cộng đồng để mọi người học hỏi và góp ý nhé. Thấy bài này hay thì cho mình một Rate node động viên để tháng 8 có lúa kỳ 1 nha haha.