Raspberry Pi Stepper Motor với Limit Switch
Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi để điều khiển động cơ bước thông qua limit switch và driver L298N. Cụ thể, chúng ta sẽ tìm hiểu:
- Cách lập trình Raspberry Pi để dừng động cơ bước khi limit switch được chạm.
- Cách lập trình Raspberry Pi để thay đổi hướng của động cơ bước khi limit switch được chạm.
- Cách lập trình Raspberry Pi để thay đổi hướng của động cơ bước bằng hai limit switch được lắp đặt ở vị trí đối diện.
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 | × | Stepper Motor Nema 17 | ||
| 1 | × | L298N Motor Driver Module | ||
| 1 | × | Adapter 12V | ||
| 1 | × | DC Power Jack | ||
| 1 | × | Dây Jumper | ||
| 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ề Stepper Motor và Limit Switch
Nếu bạn chưa quen thuộc với stepper motor và limit switch (bao gồm sơ đồ chân, chức năng, lập trình, v.v.), các hướng dẫn sau có thể giúp bạn:
- Hướng dẫn Raspberry Pi - Stepper Motor
Sơ Đồ Kết Nối
Hướng dẫn này cung cấp sơ đồ kết nối cho hai trường hợp: Một stepper motor + một limit switch, Một stepper motor + hai limit switch.
- Sơ đồ kết nối giữa Raspberry Pi, stepper motor và một limit switch

This image is created using Fritzing. Click to enlarge image
- Sơ đồ kết nối giữa Raspberry Pi, stepper motor và hai limit switch

This image is created using Fritzing. Click to enlarge image
※ Lưu ý:
Kết nối dây giữa stepper motor và L298N có thể khác nhau tùy thuộc vào loại stepper motor. Hãy xem kỹ hướng dẫn Raspberry Pi - Stepper Motor để học cách kết nối đúng stepper motor với driver motor L298N.
Code Raspberry Pi - Dừng Stepper Motor bằng Limit Switch
Stepper motor được lập trình để quay liên tục với code sau đây, và sẽ dừng ngay lập tức khi limit switch được chạm, và tiếp tục chuyển động nếu limit switch được nhả ra.
Các Bước Thực Hiện
- Đả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, hãy 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 bằng SSH client tích hợp 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:
- Tạo file Python script stepper_limit_switch.py và thêm code sau:
- Lưu file và chạy Python script bằng cách thực thi lệnh sau trong terminal:
- Nếu kết nối đúng, motor sẽ quay theo chiều kim đồng hồ.
- Khi limit switch được chạm, motor sẽ dừng ngay lập tức.
- Sau đó nếu limit switch được nhả ra, motor sẽ quay trở lại.
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.
Bằng cách thay đổi giá trị của biến delay trong code, bạn có thể thay đổi tốc độ của stepper motor.
Giải Thích Code
Hãy xem giải thích từng dòng có trong các comment của source code!
Code Raspberry Pi - Thay Đổi Hướng Stepper Motor bằng Limit Switch
Stepper motor sẽ được thiết lập chuyển động liên tục và hướng của nó sẽ được thay đổi khi limit switch được chạm.
Các Bước Thực Hiện
- Tạo file Python script stepper_direction.py và thêm code sau:
- Lưu file và chạy Python script bằng cách thực thi lệnh sau trong terminal:
- Nếu kết nối đúng, motor sẽ quay theo chiều kim đồng hồ.
- Khi bạn chạm vào limit switch, hướng của stepper motor sẽ thay đổi thành ngược chiều kim đồng hồ.
- Chạm limit switch lần nữa và hướng của stepper motor sẽ quay trở lại chiều kim đồng hồ.
Code Raspberry Pi - Thay Đổi Hướng Stepper Motor bằng hai Limit Switch
Hãy xem code làm cho stepper motor quay liên tục, và khi một trong hai limit switch được chạm, sẽ chuyển đổi hướng của motor.
Các Bước Thực Hiện
- Tạo file Python script stepper_two_limit_switches.py và thêm code sau:
- Lưu file và chạy Python script bằng cách thực thi lệnh sau trong terminal:
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.
- Nếu kết nối đúng, motor sẽ quay theo chiều kim đồng hồ.
- Khi bạn chạm limit switch 1, hướng của stepper motor sẽ được đảo ngược thành ngược chiều kim đồng hồ.
- Chạm limit switch 2 sẽ làm cho stepper motor quay theo chiều kim đồng hồ trở lại.