ESP32 Limit Switch

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Limit Switch với ESP32.

ESP32 với limit switch

Điều quan trọng cần lưu ý là hướng dẫn này cụ thể về việc sử dụng Limit Switch, xin đừng nhầm lẫn với các loại sau:

Phần Cứng 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×Cáp USB Type-C
1×Limit Switch (KW12-3)
1×Limit Switch (V-153-1C25)
1×Limit Switch (V-155-1C25)
1×Limit Switch (V-156-1C25)
1×Dây điện
1×breadboard
1×Dây jumper
1×(Tùy chọn) DC Power Jack
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ề Limit Switch

Nó được gọi là Limit Switch (công tắc giới hạn) vì chức năng chính của nó là phát hiện vật thể di chuyển đạt đến một giới hạn.

Limit Switch được đặt tên như vậy vì mục đích chính của nó là phát hiện khi một vật thể di chuyển đã đạt đến giới hạn.

Sơ Đồ Chân

Có nhiều loại limit switch khác nhau, nhưng trong số các loại được sử dụng phổ biến nhất là KW12-3V-156-1C25. Mỗi loại này đều có ba chân:

  • Chân C: Đây là chân chung (common pin), được sử dụng trong cả chế độ thường mở và thường đóng.
  • Chân NO: Đây là chân thường mở (normally open), được sử dụng trong chế độ thường mở.
  • Chân NC: Đây là chân thường đóng (normally closed), được sử dụng trong chế độ thường đóng.
sơ đồ chân limit switch
image source: diyables.io

Cách Hoạt Động

Một ứng dụng Limit Switch điển hình thường chỉ sử dụng hai chân, chân C và một trong hai chân còn lại. Điều này tạo ra bốn cách khác nhau để sử dụng Limit Switch. Bảng dưới đây minh họa cách kết nối và trạng thái đọc trên ESP32 cho mỗi trong số bốn phương pháp này.

Chân C Chân NO Chân NC Trạng thái Input Pin của ESP32
1 GND ESP32 Input Pin (với pull-up) không kết nối HIGH khi không chạm, LOW khi chạm
2 GND không kết nối ESP32 Input Pin (với pull-up) LOW khi không chạm, HIGH khi chạm
3 VCC ESP32 Input Pin (với pull-down) không kết nối LOW khi không chạm, HIGH khi chạm
4 VCC không kết nối ESP32 Input Pin (với pull-down) HIGH khi không chạm, LOW khi chạm

Bằng cách hoán đổi chân GND và ESP32 Input Pin cho mỗi trong số bốn cách, có tổng cộng tám cách khác nhau để kết nối ESP32 với Limit Switch.

Trong số tám cách, hướng dẫn này sẽ tập trung vào một phương pháp, cụ thể là phương pháp thứ nhất sẽ được sử dụng làm ví dụ.

Sơ Đồ Kết Nối

  • Cách kết nối ESP32 và limit switch sử dụng breadboard
sơ đồ kết nối ESP32 limit switch

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 kết nối ESP32 và limit switch

Để kết nối ổn định và chắc chắn, chúng tôi khuyến nghị sử dụng hàn để kết nối dây và chân limit switch với nhau, sau đó sử dụng ống co nhiệt để đảm bảo an toàn.

Để có kết nối ổn định và an toàn, khuyến nghị sử dụng mỏ hàn để hàn dây và chân Limit Switch với nhau, sau đó sử dụng ống co nhiệt để tăng thêm độ an toàn.

Code ESP32 - Limit Switch

Giống như một nút nhấn, limit switch cũng cần được chống nhiễu (debounce) (Xem thêm tại ). Việc chống nhiễu làm cho code trở nên phức tạp. May mắn thay, thư viện ezButton library hỗ trợ chức năng chống nhiễu, Thư viện cũng sử dụng thanh ghi pull-up nội. Điều này giúp chúng ta lập trình dễ dàng

Tương tự như một nút nhấn, Limit Switch cũng cần chống nhiễu (thông tin chi tiết có thể tìm thấy tại Tại sao cần chống nhiễu cho nút nhấn/limit switch?). Việc chống nhiễu có thể làm cho code phức tạp hơn. Tuy nhiên, thư viện ezButton library cung cấp chức năng chống nhiễu và sử dụng thanh ghi pull-up nội, giúp việc lập trình dễ dàng hơn.

※ Lưu ý:

Hai trường hợp sử dụng phổ biến cho Limit Switch là:

  • Trường hợp thứ nhất: Nếu switch được CHẠM, thực hiện một hành động nhất định. Nếu trạng thái input là KHÔNG CHẠM, thực hiện hành động ngược lại.
  • Trường hợp thứ hai: Nếu trạng thái của switch thay đổi từ KHÔNG CHẠM sang CHẠM (hoặc CHẠM sang KHÔNG CHẠM), thực hiện một hành động cụ thể.
/* * 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-limit-switch */ #include <ezButton.h> ezButton limitSwitch(19); // create ezButton object that attach to ESP32 pin GPIO19 void setup() { Serial.begin(9600); limitSwitch.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { limitSwitch.loop(); // MUST call the loop() function first if(limitSwitch.isPressed()) Serial.println("The limit switch: UNTOUCHED -> TOUCHED"); if(limitSwitch.isReleased()) Serial.println("The limit switch: TOUCHED -> UNTOUCHED"); int state = limitSwitch.getState(); if(state == HIGH) Serial.println("The limit switch: UNTOUCHED"); else Serial.println("The limit switch: TOUCHED"); }

Các Bước Thực Hiện

  • Theo sơ đồ kết nối được cung cấp ở trên để kết nối Limit Switch với ESP32.
  • Kết nối ESP32 của bạn với PC bằng cáp USB.
  • Mở phần mềm Arduino IDE.
  • Cài đặt thư viện ezButton. Tham khảo hướng dẫn
  • Chọn board và port phù hợp trong Arduino IDE.
  • Biên dịch và tải code lên board ESP32 bằng cách nhấp vào nút Upload trong Arduino IDE.
  • Kiểm tra Limit Switch bằng cách chạm và thả nó.
  • Quan sát đầu ra trên Serial Monitor trong Arduino IDE.
COM6
Send
The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED -> TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED -> UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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