Đ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

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

[Khám phá thế giới IoT với bSmart] Bài 3 - Sử dụng GPS với SIM7600

    Xin chào các bạn, tiếp tục seri bài viết “Khám phá thế giới IoT với bSmart”.  Định vị GPS cũng là một nhu cầu không thể thiếu trong thế giới IoT nhằm giúp theo dõi các loại xe di chuyển trên đường, hay theo dõi vị trí của các trang thiết bị quan trọng, giá trị trong quá trình vận chuyển,… Chính vì vậy, hôm nay, mình sẽ giúp các bạn tiếp tục khai thác sức mạnh của kit bSmart với định vị GPS được tích hợp sẵn cùng với module SIM7600.

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

Tách Dữ Liệu Từ Chuỗi Trong Arduino

Hello Xin Chào Mọi Người! Hôm Nay Mình Xin Hướng Dẫn Các Bạn Các Tách Một Chuỗi Chứa Các Dữ Liệu Thành Các Dữ Liệu Riêng Biệt Để Xử Lí. Cụ Thể Mình Sẽ Viết Một Cái App Trên App Inventor Gửi Về Arduino Một Chuỗi Thông Qua Kết Nối Bluetooth.

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