Arduino UNO R4 Actuator có Phản Hồi

Hướng dẫn Arduino UNO R4 này sẽ chỉ cho bạn cách sử dụng *linear actuator có phản hồi* trong các dự án DIY của bạn.

Trong bài học trước, chúng ta đã sử dụng Arduino UNO R4 - Actuator. Loại đó chỉ có thể di chuyển ra hoặc vào, nhưng không cho chúng ta biết vị trí của nó.

Bây giờ, chúng ta sẽ tìm hiểu về linear actuator có phản hồi. Nó có thể cho chúng ta biết vị trí của nó trong khi di chuyển, vì vậy chúng ta có thể điều khiển vị trí chính xác của nó.

Trong hướng dẫn đơn giản này, bạn sẽ học:

Dự án Arduino đơn giản này phù hợp cho người mới bắt đầu. Hãy làm theo hướng dẫn dễ hiểu này để học lập trình Arduino và tạo ra một hệ thống chuyển động thông minh!

Phần Cứng Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Linear Actuator 12V có Phản Hồi
1×Module Driver Motor L298N
1×Adapter Nguồn 12V
1×Jack Nguồn DC
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Linear Actuator Có Phản Hồi

Linear actuator có phản hồi là một loại linear actuator bao gồm tín hiệu phản hồi để giám sát và điều khiển vị trí của nó. Phản hồi này đến từ một potentiometer cung cấp đầu ra điện áp tương ứng với vị trí của actuator.

Sơ Đồ Chân Linear Actuator Có Phản Hồi

Linear Actuator có phản hồi có năm dây:

  • Dây Dương Actuator: Dây này điều khiển linear actuator sử dụng điện áp cao (12V, 24V, 48V).
  • Dây 5V: Dây này kết nối với potentiometer phản hồi. Nối với 5V hoặc 3.3V.
  • Dây GND: Dây này kết nối với potentiometer phản hồi. Nối với đất (GND).
  • Dây Potentiometer: Còn được gọi là dây phản hồi hoặc output, dây này gửi ra giá trị điện áp thay đổi dựa trên vị trí của stroke.
feedback linear bộ chấp hành sơ đồ chân

Cách Hoạt Động

Khi chúng ta cung cấp điện áp cao cho dây dương và âm, actuator sẽ kéo dài hoặc rút lại. Cụ thể, nếu chúng ta kết nối:

  • Kết nối 12V (như 12V, 24V, 48V...) và GND với dây dương và âm tương ứng: linear actuator kéo dài ở tốc độ tối đa cho đến khi dừng ở cuối.
  • Kết nối 12V (như 12V, 24V, 48V...) và GND với dây âm và dương tương ứng: linear actuator rút lại ở tốc độ tối đa cho đến khi dừng ở cuối.
  • Nếu nguồn điện bị ngắt khỏi actuator (GND kết nối với cả dây dương và âm) trong khi nó đang kéo dài hoặc rút lại, actuator sẽ dừng di chuyển.

※ Lưu ý:

  • Điện áp cần thiết để điều khiển actuator thay đổi dựa trên thông số kỹ thuật của nó. Kiểm tra datasheet hoặc manual để tìm điện áp phù hợp.
  • Actuator có thể duy trì vị trí mà không cần nguồn điện, ngay cả khi nó đang giữ trọng lượng.

Điện áp trong dây của potentiometer thay đổi theo vị trí actuator di chuyển. Bằng cách kiểm tra điện áp này, chúng ta có thể biết được vị trí của stroke.

Sơ Đồ Đấu Dây

Trước khi đấu dây, hãy tháo cả ba jumper khỏi module L298N.

Arduino UNO R4 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

Cách điều khiển kéo dài/rút lại linear actuator

Xem hướng dẫn cho Arduino UNO R4 Actuator Arduino UNO R4 - Actuator.

Cách tìm vị trí của linear actuator

Đây là cách tìm vị trí stroke trên linear actuator:

Hiệu Chuẩn

  • Đo chiều dài của stroke actuator (theo milimét) bằng thước hoặc kiểm tra datasheet.
  • Tìm các giá trị đầu ra khi linear actuator hoàn toàn kéo dài và rút lại bằng cách thực thi đoạn code sau.
/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-actuator-with-feedback */ // the code for getting the feedback when the actuator fully extended and retracted #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // wait for actuator fully extends. It will stop extending automatically when reaching the limit // read the analog in value: int POTENTIOMETER_MAX = analogRead(POTENTIOMETER_PIN); Serial.print("POTENTIOMETER_MAX = "); Serial.println(POTENTIOMETER_MAX); // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // wait for actuator fully extends. It will stop retracting automatically when reaching the limit int POTENTIOMETER_MIN = analogRead(POTENTIOMETER_PIN); Serial.print("POTENTIOMETER_MIN = "); Serial.println(POTENTIOMETER_MIN); }
  • Bạn sẽ thấy log trên Serial Monitor như ví dụ bên dưới.
COM6
Send
POTENTIOMETER_MAX = 987 POTENTIOMETER_MIN = 13
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Ghi lại những giá trị này.
  • Nếu giá trị min và max bị đảo ngược, hãy đổi chỗ IN1_PIN với IN2_PIN.
  • Cập nhật ba giá trị trong đoạn code bên dưới.

Code Arduino UNO R4 tính toán vị trí của actuator

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-actuator-with-feedback */ #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator #define STROKE_LENGTH 102 // PLEASE UPDATE THIS VALUE (in millimeter) #define POTENTIOMETER_MAX 987 // PLEASE UPDATE THIS VALUE #define POTENTIOMETER_MIN 13 // PLEASE UPDATE THIS VALUE void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); int potentiometer_value = analogRead(POTENTIOMETER_PIN); int stroke_pos = map(potentiometer_value, POTENTIOMETER_MIN, POTENTIOMETER_MAX, 0, STROKE_LENGTH); Serial.print("The stroke's position = "); Serial.print(stroke_pos); Serial.println(" mm"); }
  • Thay đổi ba giá trị đã hiệu chỉnh trong code
  • Tải code lên Arduino UNO R4
  • Kiểm tra kết quả trên Serial Monitor
COM6
Send
The stroke's position = 2 mm The stroke's position = 35 mm The stroke's position = 43 mm The stroke's position = 60 mm The stroke's position = 68 mm The stroke's position = 79 mm The stroke's position = 83 mm The stroke's position = 96 mm The stroke's position = 100 mm
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Cách điều khiển linear actuator đến một vị trí cụ thể

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-actuator-with-feedback */ #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator #define STROKE_LENGTH 102 // PLEASE UPDATE THIS VALUE (in millimeter) #define POTENTIOMETER_MAX 987 // PLEASE UPDATE THIS VALUE #define POTENTIOMETER_MIN 13 // PLEASE UPDATE THIS VALUE #define TOLERANCE 5 // in millimeter int targetPosition_mm = 50; // in millimeter void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { int potentiometer_value = analogRead(POTENTIOMETER_PIN); int stroke_pos = map(potentiometer_value, POTENTIOMETER_MIN, POTENTIOMETER_MAX, 0, STROKE_LENGTH); Serial.print("The stroke's position = "); Serial.print(stroke_pos); Serial.println(" mm"); if (stroke_pos < (targetPosition_mm - TOLERANCE)) ACTUATOR_extend(); else if (stroke_pos > (targetPosition_mm + TOLERANCE)) ACTUATOR_retract(); else ACTUATOR_stop(); } void ACTUATOR_extend() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); } void ACTUATOR_retract() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); } void ACTUATOR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); }

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.

Tóm Tắt

Trong hướng dẫn Arduino UNO R4 này, bạn đã học cách sử dụng linear actuator có phản hồi cho các dự án DIY. Hướng dẫn dễ hiểu này đã dạy bạn cách actuator hoạt động, cách tìm vị trí theo milimét, và cách di chuyển đến đúng vị trí với lập trình Arduino. Sau bài học về linear actuator không có phản hồi, dự án Arduino đơn giản này cho bạn thấy cách tạo ra một hệ thống chuyển động thông minh. Bây giờ bạn có thể xây dựng các dự án điều khiển chuyển động của riêng mình với Arduino UNO R4!

Bình Luận

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