Điều Khiển Motor Brushless Bằng Arduino - Sử dụng module ESC

Xin chào các bạn bạn! Lâu nay chúng ta đã quen với loại động cơ thông thường gồm 2 dây được điều khiển bằng các module điều khiển động cơ. Nhưng  nhược điểm là công suất không được cao. Khi muốn làm các dự án cần motor công suất cao như dây phơi đồ tự thu khi trời mưa, băng tải chạy thời gian thực,..thì ta sẽ cần một loại motor khác có công suất cao hơn. Giải pháp đó chính là motor brushless hay còn gọi là motor không chổi than.

Bởi vì đây là loại motor khá mới mẻ nên mình sẽ viết riêng một bài giới thiệu về nó. Còn bây giờ mình cứ tạm hiểu nó sử dụng điện DC 3 pha và không có chổi than.

Vậy làm sao để điều khiển nó?

Nó có tới 3 dây trong khi module chỉ hỗ trợ 2 dây. Vậy làm sao? Chúng ta sẽ sử dụng một thiết bị mới gọi là ESC. ESC là điều tốc cho motor brushless, hoạt động bằng cách băm xung cho chân tín hiệu. Còn cấu tạo bên trong thế nào thì mình cũng không rõ.

Sơ đồ dây:

Bên phải: Gồm 3 dây nối với 3 dây motor. Chú ý: Nối dây ở giữa của ESC với dây ở giữa của motor, còn 2 dây còn lại không quan trọng. Bởi nếu đảo 2 dây ấy thì ta chỉ đổi chiều motor.

Bên trái: Gồm 2 dây to tướng là dây cấp nguồn công suất cho motor. Nhìn xem 3 dây bé tí kia khá giống 3 dây servo đúng không. Chuẩn rồi nó hoạt động và code lập trình khá giống với servo(Hoạt động cùng băm xung còn code thì lát nữa sẽ rõ). À quên, phải giới thiệu chức năng 3 dây này đã: Dây đen là cực âm, dây đỏ cho ra nguồn 5V, dây vàng là dây tín hiệu nối với arduino (Nối với chân PWM nha).

Thực hành

Chúng ta sẽ điều khiển tốc độ của motor bằng cách băm cho esc 1 xung dài từ 1ms-2ms. Như vậy 1ms được coi là mức LOW, 2ms được coi là mức HIGH nha.

Chuẩn bị

Lắp mạch

Các bạn lắp theo sơ đồ sau:

 

Code

Mình sẽ sử dụng ké thư viện servo nha. Giờ thì hiểu giống code ở đau chưa :D.

#include<Servo.h>
 
Servo ESC; 
 
int val; //Đọc biến trở
int vel; //Độ dài xung gửi cho ESc
 
void setup()
{
  ESC.attach(9);
}
 
void loop()
{
  val=analogRead(A5);
  vel=map(val,0,1023,1000,2000);
  ESC.writeMicroseconds(vel);
}

Các bạn nên ngắt kết nối nguồn của ESC khi thực hiện việc tải lên. Chỉ cần sau khi tải các chương trình thì kết nối lại pin.

Động cơ sẽ bíp khi ESC được kích hoạt . Sau đó, bạn có thể gửi các giá trị số nguyên giữa 1000 và 2000 để thay đổi tốc độ.

Kết thúc

Chúc các bạn thành công. Cảm ơn đã theo dõi. Nếu có thắc mắc gì thì cứ cmt nha.

lên
27 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Cách sử dụng trình biên soạn Vi / VIM - Trình sửa file cho máy tính nhúng dành cho pro

Vim là một trong những trình biên soạn dòng lệnh mạnh và phổ biến nhất. Nó chỉ sẵn có trên nền của Linux và Unix, những sau đó nó cũng xuất hiện cả trên Windows. Giao diện của nó thì gọn gàng và đơn giản, và bạn có thể kết hợp các phím để thực hiện các công việc như copy-paste, tìm kiếm và thay thế, xóa một số dòng, và nhiều chức năng khác nữa. Hôm nay, chúng ta sẽ cùng nhau học cách dùng vim trên Raspberry Pi.

lên
3 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Lập trình Arduino không cần viết code - Phần 7: Cảm biến mưa

Đây là phần 7 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 6 tại đây

Xin chào mọi người, hôm nay chúng ta sẽ làm quen với cảm biến và cụ thể hơn là ở bài này chính là cảm biến mưa. Vào luôn nha.

 

lên
15 thành viên đã đánh giá bài viết này hữu ích.

Tự làm thiết bị cảnh báo khí CO với cảm biến MQ7

Chúng ta đã biết khí CO có hại cho sức khỏe con người, thậm chí đã có những vụ ngộ độc khí CO. Vì vậy hôm nay mình sẽ hướng dẫn các bạn tự làm một thiết bị cảnh báo khí CO. Đồng thời mình cũng giới thiệu với các bạn con cảm biến khí CO MQ7.

lên
22 thành viên đã đánh giá bài viết này hữu ích.