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

Giới Thiệu Về Board UNO WIFI - WeMos D1 - Khá Tiện Lợi Cho IOT

Xin chào các bạn! Hôm nay. mình sẽ review về một board arduino khá thú vị và tiện lợi cho các dự án IOT không cần quá nhiều tính năng. Đó là board Arduino UNO WiFi hay còn gọi là WeMos D1 R2.

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

Tổng quan về cách sử dụng Module 4 LED 7 đoạn - Phần 3

Xin chào mọi người! Hôm nay chúng ta sẽ tiếp tục tìm hiểu về module 4 led 7 đoạn. Đây là phần 3, bạn có thể xem lại phần 2 ở đây

Nếu như các bạn đọc phần 2 thì sẽ biết nội dung phần 2 nói về việc lập trình loại 12 pin. Còn ở phần 3 mình sẽ nói về việc lập trình loại 16 chân và loại 14 chân. Bắt đầu thôi!

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