Arduino Công tắc giới hạn
Công tắc giới hạn đã được sử dụng trong nhiều ứng dụng như điều khiển động cơ, tự động hóa. Trong hướng dẫn này, chúng ta sẽ học cách sử dụng công tắc giới hạn với Arduino.

Xin đừng nhầm lẫn với những điều sau đây:
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | Limit Switch (KW12-3) | ||
| 1 | × | Limit Switch (V-153-1C25) | ||
| 1 | × | Limit Switch (V-155-1C25) | ||
| 1 | × | Limit Switch (V-156-1C25) | ||
| 1 | × | Wires | ||
| 1 | × | (Tùy chọn) Heat Shrink Tubing | ||
| 1 | × | (Tùy chọn) Soldering Iron | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về công tắc giới hạn
Nó được gọi là Công tắc giới hạn vì chức năng chính của nó được dùng để phát hiện khi vật thể đang di chuyển đạt đến giới hạn.
Bố trí chân
Có nhiều loại công tắc giới hạn khác nhau có sẵn, nhưng trong số các loại được sử dụng phổ biến nhất là KW12-3 và V-156-1C25. Cả hai loại này đều có 3 chân:
- Chân C: là chân chung. Nó được sử dụng ở cả hai chế độ mở thông thường và đóng thông thường.
- Chân NO: là chân mở thông thường. Nó được sử dụng ở chế độ mở thông thường.
- Chân NC: là chân đóng thông thường. Nó được sử dụng ở chế độ đóng thông thường.

Cách hoạt động
Mặc dù công tắc giới hạn có 3 chân, ứng dụng thông thường thường chỉ sử dụng hai chân: chân C và một trong hai chân còn lại. Do đó, có bốn cách để sử dụng công tắc giới hạn. Dưới đây là bảng nối mạch cho công tắc giới hạn và trạng thái đọc được trên Arduino ở cả bốn cách:
| C pin | NO pin | NC pin | Arduino Input Pin's State | |
|---|---|---|---|---|
| 1 | GND | Arduino Input Pin (with pull-up) | not connected | HIGH when untouched, LOW when touched |
| 2 | GND | not connected | Arduino Input Pin (with pull-up) | LOW when untouched, HIGH when touched |
| 3 | VCC | Arduino Input Pin (with pull-down) | not connected | LOW when untouched, HIGH when touched |
| 4 | VCC | not connected | Arduino Input Pin (with pull-down) | HIGH when untouched, LOW when touched |
Ở mỗi cách kết nối, chúng ta có thể tráo đổi giữa chân GND và chân đầu vào của Arduino. Do đó, ta có tám cách để kết nối Arduino với một công tắc giới hạn.
Chúng ta chỉ cần chọn một trong bốn cách ở trên. Phần còn lại của bài hướng dẫn sẽ sử dụng cách đầu tiên.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Để kết nối dây điện được ổn định và chắc chắn, chúng tôi khuyến nghị sử dụng Soldering Iron để hàn các dây và chân của công tắc giới hạn với nhau, và sau đó sử dụng Heat Shrink Tube để làm cho nó an toàn.
Mã Arduino - Công tắc giới hạn
Cũng giống như một nút nhấn, một công tắc giới hạn cũng cần được lọc nhiễu (Xem thêm tại Tại sao cần debounce cho nút và công tắc giới hạn?). Debounce khiến mã nguồn trở nên phức tạp. May mắn thay, thư viện ezButton hỗ trợ chức năng debounce, thư viện cũng sử dụng điện trở kéo lên nội bộ. Điều này làm cho việc lập trình dễ dàng hơn.
※ Lưu ý:
Có hai trường hợp sử dụng phổ biến:
- Thứ nhất: Nếu trạng thái của công tắc là đã chạm, hãy làm một việc. Nếu trạng thái đầu vào là chưa chạm, hãy làm một việc khác theo hướng ngược lại.
- Thứ hai: Nếu trạng thái của công tắc được thay đổi từ chưa chạm sang đã chạm (hoặc từ đã chạm sang chưa chạm), hãy làm một việc.
Hướng dẫn từng bước
- Lắp đặt dây theo sơ đồ nối ở trên.
- Kết nối Arduino với máy tính bằng cáp USB.
- Mở Arduino IDE.
- Cài đặt thư viện ezButton. Xem Cách làm
- Chọn bo mạch và cổng đúng.
- Nhấn nút Tải lên trên Arduino IDE để nạp mã lên Arduino.
- Chạm vào công tắc giới hạn và thả ra.
- Xem kết quả trên Serial Monitor.
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.