Tìm kiếm mã

Hướng dẫn ESP32 15/55 - Điều khiển tốc độ động cơ DC với ESP32 L293D | Bộ học IoT ESP32 của SunFounder

Hướng dẫn ESP32 15/55 - Điều khiển tốc độ động cơ DC với ESP32 L293D | Bộ học IoT ESP32 của SunFounder

Hướng dẫn ESP32 15/55 - Điều khiển tốc độ động cơ DC với ESP32 L293D | Bộ kit học IoT ESP32 của SunFounder

Việc điều khiển động cơ DC bằng ESP32 có vẻ khó khăn, nhưng thực tế khá dễ quản lý nếu bạn có đúng linh kiện và hiểu biết. Trong hướng dẫn này, chúng ta sẽ xây dựng một dự án cho phép điều khiển tốc độ và hướng quay của động cơ DC bằng bộ điều khiển động cơ L293D. Kết thúc hướng dẫn, bạn sẽ có một hệ thống hoạt động có thể quay động cơ tiến và lùi đồng thời điều chỉnh tốc độ. Để tham khảo trực quan, hãy xem video tại (trong video ở 00:00).

Sơ đồ mạch ESP32-15_L293D_motor

Giải thích phần cứng

Các thành phần chính của dự án này bao gồm vi điều khiển ESP32 và bộ điều khiển động cơ L293D. ESP32 là một vi điều khiển mạnh mẽ với khả năng Wi-Fi và Bluetooth tích hợp, phù hợp cho các ứng dụng IoT. Nó có thể điều khiển nhiều thành phần phần cứng khác nhau, bao gồm cả động cơ, thông qua các chân GPIO. L293D là bộ điều khiển động cơ cầu H kép cho phép bạn điều khiển hướng và tốc độ của hai động cơ DC. Mỗi cầu H có thể điều khiển một động cơ theo cả hai hướng bằng cách đảo cực tính của điện áp đặt vào các đầu nối động cơ. Ngoài ra, L293D có thể xử lý dòng điện lên đến 600 mA mỗi kênh, phù hợp cho các động cơ nhỏ và vừa.

IC điều khiển động cơ L293D

Chi tiết từ bảng dữ liệu

Nhà sản xuất Texas Instruments
Số linh kiện L293D
Điện áp Logic/IO 2,5 – 7 V
Điện áp nguồn 4,5 – 36 V
Dòng điện đầu ra (mỗi kênh) 600 mA (điển hình)
Dòng điện đỉnh (mỗi kênh) 1,2 A (tối đa)
Hướng dẫn tần số PWM 20 kHz (điển hình)
Ngưỡng logic đầu vào 0,8 V (cao), 2,0 V (thấp)
Sụt áp / RDS(on) / bão hòa 1,5 V (tối đa)
Giới hạn nhiệt 150 °C (tối đa)
Kiểu đóng gói 16-DIP
Ghi chú / biến thể Bộ điều khiển nửa H bốn kênh

 

  • Đảm bảo tản nhiệt phù hợp cho các ứng dụng dòng điện cao.
  • Tách nguồn điện bằng tụ điện để ngăn ngừa xung điện áp.
  • Cẩn thận khi nối dây để tránh đảo cực.
  • Sử dụng PWM để điều khiển tốc độ nhằm tránh quá nhiệt.
  • Kiểm tra điện áp định mức của động cơ để tránh hư hỏng.

Hướng dẫn nối dây

ESP32-15_L293D_motor_wiring

Để nối dây ESP32 và bộ điều khiển động cơ L293D, hãy bắt đầu bằng việc kết nối nguồn. Kết nối chân 16 của L293D với cực dương của nguồn điện, và chân 4 với đất. Tiếp theo, kết nối động cơ: một đầu nối với chân 3 và đầu còn lại với chân 6 trên L293D. Đối với tín hiệu điều khiển, kết nối chân GPIO 13 của ESP32 với chân 2 trên L293D và chân GPIO 14 với chân 7. Cuối cùng, đảm bảo kết nối đất của ESP32 với đất của L293D để có chung một điểm tham chiếu. Nếu video đề cập đến cách nối dây thay thế (trong video ở 05:00), hãy làm theo các thay đổi cụ thể được hiển thị.

Ví dụ mã & hướng dẫn chi tiết

Mã điều khiển động cơ bao gồm việc định nghĩa các chân cho động cơ và thiết lập chế độ của chúng. Đây là một đoạn trích từ hàm setup:

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

Trong đoạn mã này, chúng ta định nghĩa các chân điều khiển động cơ là hằng số và đặt chúng làm đầu ra trong hàm setup. Điều này rất quan trọng vì nó chuẩn bị các chân để điều khiển động cơ. Hàm loop là nơi hành vi của động cơ được điều khiển. Đây là phần chính của loop:

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

Mã này quay động cơ theo một hướng trong 2 giây, sau đó đảo chiều trong 2 giây tiếp theo, và cuối cùng dừng động cơ trong 3 giây. Vòng lặp này sẽ lặp lại vô hạn, cho phép điều khiển liên tục. Để có thông tin chi tiết hơn và mã hoàn chỉnh, hãy tham khảo chương trình đầy đủ được tải bên dưới bài viết.

Trình diễn / Điều gì sẽ xảy ra

Sau khi nối dây và tải mã thành công, bạn sẽ thấy động cơ quay theo một hướng trong 2 giây, đổi hướng trong 2 giây tiếp theo, rồi dừng trong 3 giây. Nếu động cơ không phản hồi như mong đợi, hãy kiểm tra các lỗi thường gặp như đảo cực hoặc kết nối chân sai (trong video ở 08:00). Hệ thống này cung cấp một cách đơn giản để điều khiển tốc độ và hướng của động cơ DC bằng ESP32 và L293D.

Mốc thời gian trong video

  • 00:00 Bắt đầu
  • 2:01 Giới thiệu về động cơ DC
  • 6:14 Bộ điều khiển động cơ L293D
  • 9:17 Tài liệu dự án
  • 11:04 Giải thích cách đấu dây
  • 14:41 Điều khiển động cơ Arduino với ESP32
  • 17:10 Chọn cổng Arduino cho bo mạch ESP32
  • 18:52 Trình diễn dự án
  • 22:08 Điều khiển tốc độ động cơ bằng ESP32
  • 26:22 Trình diễn điều khiển tốc độ
  • 28:01 Mã Arduino điều khiển tốc độ và hướng
  • 29:05 Trình diễn tốc độ và hướng

Hình ảnh

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
Ngôn ngữ: C++
#define motor1A 13
#define motor2A 14

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin as an output.
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

// the loop function runs over and over again forever
void loop() {
  
  // Rotate
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  // Rotate in the opposite direction
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  // Stop
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

Nghĩ bạn có thể cần

Tài nguyên & tài liệu tham khảo

Tập tin📁

Bảng dữ liệu (pdf)