Cách đây mấy hôm, cửa hàng linh kiện điện tử Vietnic vừa có bài viết hướng dẫn các bạn cách điều khiển các thiết bị trong nhà với ESP826. Bài viết nhận được khá nhiều sự quan tâm, theo dõi của các bạn trẻ. Qua đó có thể thấy được các bạn trẻ ngày nay rất ham học hỏi và thích khám phá những tri thức mới. Do đó, hôm nay Vietnic sẽ tiếp tục gửi đến các bạn một bài viết khác tương tự. Bài viết này sẽ dẫn các bạn điều khiển động cơ bước với IC Driver A4988.
Đầu tiên, các bạn cần đọc lại bài Tìm hiểu về động cơ bước và hệ thống điều khiển động cơ bước để hệ thống lại một vài kiến thức chung về động cơ bước trước khi đi vào tìm hiểu quy trình điều khiển động cơ bước với IC Driver A4988 nhé!
Bây giờ linh kiện điện tử Vietnic sẽ hướng dẫn các bạn quy trình để điều khiển động cơ bước với IC Driver A4988 ngay đây.
Quy trình điều khiển động cơ bước với IC Driver A4988
Bước 1: Chuẩn bị
Để có thể điều khiển động cơ bước với IC Driver A4988 bạn cần chuẩn bị những linh kiện điện tử và phụ kiện như:
(1) Arduino: bạn có thể sử dụng bất cứ mạch arduino nào cũng được nhưng tốt nhất nên sử dụng mạch Arduino UNO. Trong bài hướng dẫn này, Vietnic cũng sử dụng mạch Arduino UNO.
Linh kiện điện tử Vietnic thì hay dùng IC Driver A4988 hoặc DRV8825 để điều khiển động cơ bước.
Bạn có thể sử dụng:
Module điều khiển động cơ bước - A4988
Hoặc
DRV8825 Driver điều khiển động cơ bước máy in 3D
Trong bài viết này Vietnic dùng IC Driver A4988.
(3) Breadboard
Board test mạch
(4) Nguồn cấp 12V (tối thiểu 1A)
Nguồn xung 12V-2A
(5) Dây breadboard
Ở đây bạn có thể sử dụng:
Dây test board 2 đầu đực- 40 sợi
Hoặc
Dây test board đực cái - 40 sợi
Trên đây là những linh kiện cần thiết để điều khiển động cơ bước với IC Driver A4988. Cùng tìm hiểu về IC Driver A4988 trước khi qua bước 2 nhé!
*** Tìm hiểu chi tiết về IC Driver A4988
Giới thiệu
IC Driver A4988 là một module điều khiển động cơ bước có kích thước rất nhỏ gọn, chỉ bằng 1/2 thẻ SD.
Khá bất ngờ là hầu hết các máy in 3d đều dùng con IC này để điều khiển vì máy in 3d tải trọng nhỏ.
Thông số kỹ thuật
+ Tương Thích Với Động Cơ Bước 2A (8vV~35V)
+ 5 Chế Độ Điều Khiển : 1, 1/2, 1/4, 1/8. 1/16
+ Điều Chỉnh Được Dòng Cực Đại
+ Bảo Vệ Ngắn Mạch, Quá Tải
+ Điện áp hoạt động 3,3v - 5v
+ Kích thước 15(W) x 20(L) x 2(H) mm
Ưu điểm
+ Đ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í.
Sử dụng
Sơ đồ kết nối:
+ Lựa chọn chế độ full hay 1/2 hay 1/4 sẽ được thông qua 3 pin MS1 MS2 MS3. Mình thường nối thẳng 3 pin này với công tắc bit 3p để dễ thiết lập từ trên phần cứng. Lưu ý là nếu thả nổi 3 pin này tức là mode full step.
+ 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.
*** Tổng chi phí để tạo một mạch điều khiển động cơ bước với IC Driver A4988
Đây có lẽ là thắc mắc của rất nhiều bạn đúng không nào, Vietnic sẽ giải đáp cho bạn câu hỏi này ngay đây.
Bảng giá các linh kiện tại cửa hàng linh kiện điện tử Vietnic:
Vậy, nếu bạn mua các linh kiện tại Vietnic để làm mạch này thì bạn chỉ tốn có 283.000đồng mà thôi.
Tuy nhiên giá thành trên sẽ thay đổi theo thời gian và thay đổi tùy thuộc vào cửa hàng mà bạn mua linh kiện. Với những cửa hàng khác giá của những linh kiện này có thể giao động từ 300.000 - 400.000 đồng.
Bước 2: Mắc mạch: nối dây driver, động cơ bước và Arduino
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ỏ.
Các bạn mắc như hình:
Bước 3: Nạp code cho Arduino
Sau khi mắc mạch như bước 2, các bạn tiến hành chạy 1 vòng động cơ, nghỉ 1s sau đó đảo chiều, chạy liên tục.
Bạn nạp đoạn code sau cho Arduino:
Những thiếu sót của mạch điều khiển và cách khắc phục
Những thiếu sót của mạch điều khiển động cơ bước với A4988 và Arduino UNO R3
Khi nhìn vào đoạn code trên thì bạn sẽ thấy để làm 1 động cơ bước hoạt động cần rất nhiều dòng code, và với những dòng delay như vậy thì chả có cách nào chạy những tiến trình khác khi động cơ bước đang chạy.
Để khắc phục tình trạng này, Arduino có hỗ trợ sẵn bộ thư viện stepper trong file example. Tuy nhiên thư viện đó cũng delay như đoạn code kia. Nghĩa là trong quá trình động cơ bước hoạt động thì cả chương trình sẽ phải dừng đợi nó hoạt động theo (cơ chế này gọi là cơ chế đồng bộ - sync).
Cách khắc phục để động cơ bước hoạt động hiệu quả hơn
Để khắc phục tình trạng delay chương trình để đợi động cơ hoạt động, chúng ta phải xử lý bất động bộ. Nghĩa là phải thay hàm delay bằng cách khác: sử dụng hàm milli().
Thư viện AccelStepper ứng dụng nguyên lý xử lý bất đồng bộ (async) sẽ giúp bạn giải quyết tình trạng trên.
Các bạn có thể tải về thư viện này
Bây giờ thì bạn có thể sở hữu một bộ điều khiển động cơ bước hoàn hảo rồi đấy!
Đầu tiên, các bạn cần đọc lại bài Tìm hiểu về động cơ bước và hệ thống điều khiển động cơ bước để hệ thống lại một vài kiến thức chung về động cơ bước trước khi đi vào tìm hiểu quy trình điều khiển động cơ bước với IC Driver A4988 nhé!
Bây giờ linh kiện điện tử Vietnic sẽ hướng dẫn các bạn quy trình để điều khiển động cơ bước với IC Driver A4988 ngay đây.
Quy trình điều khiển động cơ bước với IC Driver A4988
Bước 1: Chuẩn bị
Để có thể điều khiển động cơ bước với IC Driver A4988 bạn cần chuẩn bị những linh kiện điện tử và phụ kiện như:
(1) Arduino: bạn có thể sử dụng bất cứ mạch arduino nào cũng được nhưng tốt nhất nên sử dụng mạch Arduino UNO. Trong bài hướng dẫn này, Vietnic cũng sử dụng mạch Arduino UNO.
Linh kiện điện tử Vietnic thì hay dùng IC Driver A4988 hoặc DRV8825 để điều khiển động cơ bước.
Bạn có thể sử dụng:
Module điều khiển động cơ bước - A4988
Hoặc
DRV8825 Driver điều khiển động cơ bước máy in 3D
Trong bài viết này Vietnic dùng IC Driver A4988.
(3) Breadboard
Board test mạch
(4) Nguồn cấp 12V (tối thiểu 1A)
Nguồn xung 12V-2A
(5) Dây breadboard
Ở đây bạn có thể sử dụng:
Dây test board 2 đầu đực- 40 sợi
Hoặc
Dây test board đực cái - 40 sợi
Trên đây là những linh kiện cần thiết để điều khiển động cơ bước với IC Driver A4988. Cùng tìm hiểu về IC Driver A4988 trước khi qua bước 2 nhé!
*** Tìm hiểu chi tiết về IC Driver A4988
Giới thiệu
IC Driver A4988 là một module điều khiển động cơ bước có kích thước rất nhỏ gọn, chỉ bằng 1/2 thẻ SD.
Khá bất ngờ là hầu hết các máy in 3d đều dùng con IC này để điều khiển vì máy in 3d tải trọng nhỏ.
Thông số kỹ thuật
+ Tương Thích Với Động Cơ Bước 2A (8vV~35V)
+ 5 Chế Độ Điều Khiển : 1, 1/2, 1/4, 1/8. 1/16
+ Điều Chỉnh Được Dòng Cực Đại
+ Bảo Vệ Ngắn Mạch, Quá Tải
+ Điện áp hoạt động 3,3v - 5v
+ Kích thước 15(W) x 20(L) x 2(H) mm
Ưu điểm
+ Đ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í.
Sử dụng
Sơ đồ kết nối:
+ Lựa chọn chế độ full hay 1/2 hay 1/4 sẽ được thông qua 3 pin MS1 MS2 MS3. Mình thường nối thẳng 3 pin này với công tắc bit 3p để dễ thiết lập từ trên phần cứng. Lưu ý là nếu thả nổi 3 pin này tức là mode full step.
+ 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.
*** Tổng chi phí để tạo một mạch điều khiển động cơ bước với IC Driver A4988
Đây có lẽ là thắc mắc của rất nhiều bạn đúng không nào, Vietnic sẽ giải đáp cho bạn câu hỏi này ngay đây.
Bảng giá các linh kiện tại cửa hàng linh kiện điện tử Vietnic:
Vậy, nếu bạn mua các linh kiện tại Vietnic để làm mạch này thì bạn chỉ tốn có 283.000đồng mà thôi.
Tuy nhiên giá thành trên sẽ thay đổi theo thời gian và thay đổi tùy thuộc vào cửa hàng mà bạn mua linh kiện. Với những cửa hàng khác giá của những linh kiện này có thể giao động từ 300.000 - 400.000 đồng.
Bước 2: Mắc mạch: nối dây driver, động cơ bước và Arduino
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ỏ.
Các bạn mắc như hình:
Bước 3: Nạp code cho Arduino
Sau khi mắc mạch như bước 2, các bạn tiến hành chạy 1 vòng động cơ, nghỉ 1s sau đó đảo chiều, chạy liên tục.
Bạn nạp đoạn code sau cho Arduino:
Những thiếu sót của mạch điều khiển và cách khắc phục
Những thiếu sót của mạch điều khiển động cơ bước với A4988 và Arduino UNO R3
Khi nhìn vào đoạn code trên thì bạn sẽ thấy để làm 1 động cơ bước hoạt động cần rất nhiều dòng code, và với những dòng delay như vậy thì chả có cách nào chạy những tiến trình khác khi động cơ bước đang chạy.
Để khắc phục tình trạng này, Arduino có hỗ trợ sẵn bộ thư viện stepper trong file example. Tuy nhiên thư viện đó cũng delay như đoạn code kia. Nghĩa là trong quá trình động cơ bước hoạt động thì cả chương trình sẽ phải dừng đợi nó hoạt động theo (cơ chế này gọi là cơ chế đồng bộ - sync).
Cách khắc phục để động cơ bước hoạt động hiệu quả hơn
Để khắc phục tình trạng delay chương trình để đợi động cơ hoạt động, chúng ta phải xử lý bất động bộ. Nghĩa là phải thay hàm delay bằng cách khác: sử dụng hàm milli().
Thư viện AccelStepper ứng dụng nguyên lý xử lý bất đồng bộ (async) sẽ giúp bạn giải quyết tình trạng trên.
Các bạn có thể tải về thư viện này
Bây giờ thì bạn có thể sở hữu một bộ điều khiển động cơ bước hoàn hảo rồi đấy!