Đ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ả

[Truyền thông] Phát động cuộc thi "Oraichain Hackathon" 2022 - Săn tiền thưởng 100 triệu đồng

    Hiện nay với xu thế phát triển của cách mạng công nghiệp 4.0, AI và Blockchain đang ngày càng được quan tâm, phát triển. Các cuộc thi về AI thì đã có nhiều, còn các cuộc thi về Blockchain thì vẫn còn khá ít và hạn chế. Trước sự quan tâm của các bạn trẻ đam mê công nghệ tại Việt Nam về Blockchain, chiều ngày 19/4/2022, tại Hà Nội, Trung tâm Phát triển khoa học, công nghệ và tài năng trẻ (Trung ương Đoàn) đã phối hợp với các đơn vị chính thức khởi động cuộc thi lập trình Orachain Hackathon năm 2022.

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

GPS và Arduino - Phần 1: Tìm hiểu về GPS

Xin chào các bạn! Sau khi tìm hiểu mình thấy GPS khá thú vị và ta cũng có thể sử dụng nó với arduino. Vì vậy mình sẽ viết 1 seri ngắn nói về gps. Ở phần 1 này mình sẽ giúp các bạn hiểu GPS là gì. Ok, ta bắt đầu luôn.

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