Raspberry Pi Limit Switch (Công tắc hành trình)

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi với limit switch (công tắc hành trình). Cụ thể, chúng ta sẽ học:

Raspberry Pi with limit switch

Linh Kiện Cần Thiết

1×Raspberry Pi 5
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 nối
1×(Tùy chọn) Ống co nhiệt
1×(Tùy chọn) Mỏ hàn
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

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 hành trình) 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 Limit Switch

Có nhiều loại limit switch khác nhau, tuy nhiên trong số các loại được ưa chuộng nhất là các mẫu KW12-3V-156-1C25, mỗi loại có ba chân:

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

Cách Hoạt Động

Mặc dù limit switch có ba chân, 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ấu hình có thể có. Bảng sau đây hiển thị cách đấu nối limit switch và các kết quả đọc tương ứng trên Raspberry Pi cho cả bốn trường hợp:

Chân C Chân NO Chân NC Trạng Thái Chân Input Raspberry Pi
1 GND Chân Input Raspberry Pi (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 Chân Input Raspberry Pi (với pull-up) LOW khi không chạm, HIGH khi chạm
3 VCC Chân Input Raspberry Pi (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 Chân Input Raspberry Pi (với pull-down) HIGH khi không chạm, LOW khi chạm

Đối với mỗi phương pháp, chúng ta có thể hoán đổi chân GND và chân input Raspberry Pi. Điều này cho chúng ta tổng cộng 8 khả năng để kết nối Raspberry Pi với limit switch.

Chúng ta phải chọn một trong bốn tùy chọn. Phần còn lại của hướng dẫn sẽ sử dụng phương pháp đầu tiên.

Sơ Đồ Đấu Nối

Raspberry Pi limit switch sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Để có kết nối đấu dây an toàn và đáng tin cậy, chúng tôi khuyến nghị sử dụng Mỏ hàn để hàn các dây và chân của limit switch lại với nhau. Sau đó, sử dụng Ống Co Nhiệt để đảm bảo an toàn.

Code Raspberry Pi - Limit Switch

Tương tự như một nút nhấn, limit switch cũng cần chống dội tín hiệu (để biết thêm thông tin, xem Tại sao cần chống dội cho button/limit switch?).

※ Lưu ý:

Có hai ứng dụng phổ biến với limit switch:

  • Thứ nhất: Nếu switch được CHẠM, thực hiện một hành động. Nếu switch KHÔNG ĐƯỢC CHẠM, thực hiện một hành động khác để phản hồi.
  • Thứ hai: Nếu switch thay đổi từ KHÔNG ĐƯỢC CHẠM sang ĐƯỢC CHẠM (hoặc từ ĐƯỢC CHẠM sang KHÔNG ĐƯỢC CHẠM), thực hiện một hành động.

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích Raspberry Pi nào khác trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
  • Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH sử dụng SSH client có sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo file script Python limit_switch.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi 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/raspberry-pi/raspberry-pi-limit-switch import RPi.GPIO as GPIO # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin for your button SWITCH_PIN = 16 # Define debounce time in milliseconds DEBOUNCE_TIME_MS = 200 # 200 milliseconds # Set the initial state and pull-up resistor for the button GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the button state and previous state switch_state = GPIO.input(SWITCH_PIN) prev_switch_state = switch_state # Define a function to handle button presses def button_callback(channel): global switch_state switch_state = GPIO.input(SWITCH_PIN) # Add an event listener for the button press GPIO.add_event_detect(SWITCH_PIN, GPIO.BOTH, callback=button_callback, bouncetime=DEBOUNCE_TIME_MS) try: # Main loop while True: # Check if the button state has changed if switch_state != prev_switch_state: if switch_state == GPIO.HIGH: print("The limit switch: TOUCHED -> UNTOUCHED") else: print("The limit switch: UNTOUCHED -> TOUCHED") prev_switch_state = switch_state if switch_state == GPIO.HIGH: print("The limit switch: UNTOUCHED") else: print("The limit switch: TOUCHED") except KeyboardInterrupt: # Clean up GPIO on exit GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực hiện lệnh sau trong terminal:
python3 limit_switch.py
  • Nhấn và sau đó thả Limit Switch.
  • Xem kết quả trong Terminal.
PuTTY - Raspberry Pi
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 -> UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

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.