ESP32 Linear Actuator (Thiết Bị Truyền Động Thẳng)

Hướng dẫn này sẽ chỉ bạn cách sử dụng ESP32 để điều khiển linear actuator (thiết bị truyền động thẳng). Cụ thể, chúng ta sẽ học:

Hướng dẫn này dành cho linear actuator không có phản hồi. Nếu bạn muốn tìm hiểu về linear actuator có phản hồi, hãy xem hướng dẫn ESP32 - Actuator với Phản Hồi.

Linh Kiện Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×Linear Actuator
1×L298N Motor Driver Module
1×12V Power Adapter
1×(Tùy chọn) DC Power Jack
1×breadboard
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Linear Actuator

linear bộ chấp hành extend retract

Sơ Đồ Chân Linear Actuator

Linear Actuator có hai dây:

  • Dây dương: thường màu đỏ
  • Dây âm: thường màu đen
linear bộ chấp hành sơ đồ chân

Cách Hoạt Động

Khi bạn mua một linear actuator, bạn cần biết actuator hoạt động ở điện áp nào. Hãy lấy linear actuator 12V làm ví dụ.

Khi bạn cấp nguồn 12V cho linear actuator 12V:

  • 12V và GND lần lượt nối với dây dương và dây âm: linear actuator sẽ kéo dài với tốc độ tối đa cho đến khi đạt giới hạn.
  • 12V và GND lần lượt nối với dây âm và dây dương: linear actuator sẽ co lại với tốc độ tối đa cho đến khi đạt giới hạn.

Trong quá trình kéo dài hoặc co lại, nếu chúng ta ngừng cấp nguồn cho actuator (nối GND với cả hai dây dương và âm), actuator sẽ dừng kéo dài/co lại.

※ Lưu ý:

Đối với DC motor, servo motor và stepper motor không có hệ thống bánh răng, khi chịu tải, nếu chúng ta ngừng cấp nguồn, chúng không thể giữ vị trí. Khác với các motor này, actuator có thể giữ vị trí ngay cả khi ngừng cấp nguồn trong khi vẫn chịu tải.

Nếu chúng ta cấp nguồn dưới 12V cho linear actuator, actuator vẫn sẽ kéo dài/co lại nhưng không ở tốc độ tối đa. Điều này có nghĩa là nếu chúng ta thay đổi điện áp nguồn cấp, chúng ta có thể thay đổi tốc độ của linear actuator. Tuy nhiên, phương pháp này không được sử dụng trong thực tế vì khó khăn trong việc điều khiển điện áp nguồn cấp. Thay vào đó, chúng ta cố định điện áp nguồn cấp và điều khiển tốc độ linear actuator thông qua tín hiệu PWM. Độ rộng xung PWM càng lớn thì tốc độ kéo dài/co lại của linear actuator càng cao.

how to control linear bộ chấp hành

Cách điều khiển linear actuator bằng ESP32

Việc điều khiển linear actuator bao gồm:

  • Kéo dài linear actuator ở tốc độ tối đa
  • Co lại linear actuator ở tốc độ tối đa
  • (tùy chọn) Điều khiển tốc độ kéo dài/co lại

ESP32 có thể tạo tín hiệu để điều khiển linear actuator. Tuy nhiên, tín hiệu này có điện áp và dòng điện thấp, chúng ta không thể sử dụng trực tiếp để điều khiển linear actuator. Chúng ta cần sử dụng driver phần cứng ở giữa ESP32 và linear actuator. Driver thực hiện hai công việc:

  • Khuếch đại tín hiệu điều khiển từ ESP32 (dòng điện và điện áp)
  • Nhận tín hiệu điều khiển khác từ ESP32 để đảo cực nguồn cấp → để điều khiển hướng

※ Lưu ý:

  • Hướng dẫn này có thể áp dụng cho tất cả linear actuator. Linear actuator 12V chỉ là một ví dụ.
  • Khi bạn điều khiển linear actuator 5V, mặc dù chân ESP32 xuất 5V (giống như điện áp actuator), bạn vẫn cần driver giữa ESP32 và linear actuator vì chân ESP32 không cung cấp đủ dòng điện cho linear actuator.

Có nhiều loại chip, module (ví dụ L293D, L298N) có thể được sử dụng làm driver cho linear actuator. Trong hướng dẫn này, chúng ta sẽ sử dụng driver L298N.

※ Lưu ý:

Bạn cũng có thể sử dụng relay làm driver. Tuy nhiên nó cần 4 relay để điều khiển một linear actuator (cả kéo dài/co lại)

Về L298N Driver

L298N Driver có thể được sử dụng để điều khiển linear actuator, DC motor và stepper motor. Trong hướng dẫn này, chúng ta học cách sử dụng nó để điều khiển linear actuator.

Sơ Đồ Chân L298N Driver

l298n trình điều khiển sơ đồ chân

L298N Driver có hai kênh, được gọi là kênh A và kênh B. Do đó, L298N Driver có thể điều khiển hai linear actuator độc lập cùng lúc. Giả sử linear actuator A được kết nối với kênh A, linear actuator B được kết nối với kênh B. L298N Driver có 13 chân:

Các chân chung cho cả hai kênh:

  • Chân VCC: cung cấp nguồn cho linear actuator. Có thể từ 5 đến 35V.
  • Chân GND: là chân mass chung, cần được kết nối với GND (0V).
  • Chân 5V: cung cấp nguồn cho module L298N. Có thể được cung cấp 5V từ ESP32.

Các chân kênh A:

  • Chân ENA: được sử dụng để điều khiển tốc độ của linear actuator A. Tháo jumper và kết nối chân này với đầu vào PWM sẽ cho phép chúng ta điều khiển tốc độ kéo dài/co lại của linear actuator A.
  • Chân IN1 & IN2: được sử dụng để điều khiển hướng di chuyển của linear actuator. Khi một trong số chúng là HIGH và cái kia là LOW, linear actuator sẽ kéo dài hoặc co lại. Nếu cả hai đầu vào đều HIGH hoặc LOW thì linear actuator sẽ dừng.
  • Chân OUT1 & OUT2: được kết nối với linear actuator A.

Các chân kênh B:

  • Chân ENB: được sử dụng để điều khiển tốc độ của linear actuator B. Tháo jumper và kết nối chân này với đầu vào PWM sẽ cho phép chúng ta điều khiển tốc độ kéo dài/co lại của linear actuator B.
  • Chân IN3 & IN4: được sử dụng để điều khiển hướng di chuyển của linear actuator. Khi một trong số chúng là HIGH và cái kia là LOW, linear actuator sẽ kéo dài hoặc co lại. Nếu cả hai đầu vào đều HIGH hoặc LOW thì linear actuator sẽ dừng.
  • Chân OUT3 & OUT4: được kết nối với linear actuator.

Như mô tả ở trên, L298N driver có hai đầu vào nguồn:

  • Một cho linear actuator (chân VCCGND): từ 5 đến 35V.
  • Một cho hoạt động nội bộ của module L298N (chân 5V và GND): từ 5 đến 7V.

L298N driver cũng có ba jumper cho các mục đích sử dụng nâng cao khác. Để đơn giản, vui lòng tháo tất cả jumper khỏi L298N driver.

Chúng ta có thể điều khiển hai linear actuator độc lập cùng lúc bằng cách sử dụng một ESP32 và một L298N Driver. Để điều khiển mỗi linear actuator, chúng ta chỉ cần ba chân từ ESP32.

※ Lưu ý:

Phần còn lại của hướng dẫn này điều khiển linear actuator sử dụng kênh A. Việc điều khiển linear actuator khác cũng tương tự.

Cách Điều Khiển Linear Actuator

Chúng ta sẽ học cách điều khiển Linear Actuator sử dụng driver L298N

Sơ Đồ Đấu Nối

Vui lòng tháo tất cả ba jumper trên module L298N trước khi đấu nối.

ESP32 linear bộ chấp hành l298n trình điều khiển sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

Cách Làm Linear Actuator Kéo Dài/Co Lại

Hướng di chuyển của Linear Actuator có thể được điều khiển bằng cách áp dụng logic HIGH/LOW cho các chân IN1 và IN2. Bảng dưới đây minh họa cách điều khiển hướng trong cả hai kênh.

Chân IN1 Chân IN2 Hướng
LOW LOW Linear Actuator A dừng
HIGH HIGH Linear Actuator A dừng
HIGH LOW Linear Actuator A kéo dài
LOW HIGH Linear Actuator A co lại
  • Kéo dài Linear Actuator A
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Co lại Linear Actuator A
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Lưu ý:

Hướng di chuyển sẽ bị đảo ngược nếu chân OUT1 & OUT2 kết nối với hai chân của linear actuator theo cách ngược lại. Nếu vậy, chỉ cần hoán đổi giữa chân OUT1 & OUT2 hoặc thay đổi tín hiệu điều khiển trên chân IN1 và IN2 trong code.

Cách Dừng Linear Actuator Khỏi Việc Kéo Dài hoặc Co Lại

Linear actuator tự động dừng kéo dài/co lại khi đạt đến giới hạn. Chúng ta cũng có thể lập trình để dừng nó khỏi việc kéo dài/co lại khi chưa đạt đến giới hạn.

Có hai cách để dừng linear actuator

  • Điều khiển tốc độ về 0
analogWrite(ENA_PIN, 0);
  • Điều khiển các chân IN1 IN2 về cùng giá trị (LOW hoặc HIGH)
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • Hoặc
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

Cách Điều Khiển Tốc Độ Linear Actuator qua L298N Driver

Việc điều khiển tốc độ của linear actuator rất đơn giản. Thay vì điều khiển chân ENA thành HIGH, chúng ta tạo tín hiệu PWM cho chân ENA. Chúng ta có thể làm điều này bằng cách:

  • Kết nối một chân ESP32 với ENA của L298N
  • Tạo tín hiệu PWM cho chân ENA bằng cách sử dụng hàm analogWrite(). L298N Driver khuếch đại tín hiệu PWM cho linear actuator
analogWrite(ENA_PIN, speed); // speed là giá trị từ 0 đến 255

Tốc độ (speed) là một giá trị từ 0 đến 255. Nếu speed là 0, linear actuator dừng. Nếu speed là 255, linear actuator kéo dài/co lại ở tốc độ tối đa.

Code Ví Dụ ESP32

Code dưới đây thực hiện:

  • Kéo dài actuator ở tốc độ tối đa
  • Dừng linear actuator
  • Co lại actuator ở tốc độ tối đa
  • Dừng linear actuator
/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-actuator */ #define ENA_PIN 27 // The ESP32 pin GPIO27 connected to the EN1 pin L298N #define IN1_PIN 26 // The ESP32 pin GPIO26 connected to the IN1 pin L298N #define IN2_PIN 25 // The ESP32 pin GPIO25 connected to the IN2 pin L298N // the setup function runs once when you press reset or power the board void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } // the loop function runs over and over again forever void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // actuator will stop extending automatically when reaching the limit // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // actuator will stop retracting automatically when reaching the limit }

Các Bước Nhanh

  • Tháo tất cả ba jumper trên module L298N.
  • Copy code trên và paste vào Arduino IDE
  • Compile và upload code lên board ESP32 bằng cách nhấn nút Upload trên Arduino IDE
  • Bạn sẽ thấy:
    • Linear actuator kéo dài và sau đó dừng khi đạt giới hạn
    • Linear actuator giữ vị trí trong một khoảng thời gian
    • Linear actuator co lại và sau đó dừng khi đạt giới hạn
    • Linear actuator giữ vị trí trong một khoảng thời gian
    • Quá trình trên được lặp lại liên tục.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Bình Luận

Bài hướng dẫn liên quan