Arduino Joystick Động cơ servo
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino và một joystick để điều khiển hai động cơ servo hoặc một bộ pan-tilt với các servo.
A joystick có hai biến trở tích hợp vuông góc với nhau (gọi là trục X và trục Y). Các biến trở này xuất ra các giá trị analog (gọi là giá trị X và giá trị Y) trên các chân VRX và VRY. Chúng ta sẽ dùng các giá trị analog này để điều khiển hai động cơ servo độc lập: giá trị X điều khiển servo số 1 và giá trị Y điều khiển servo số 2. Trong trường hợp bộ pan-tilt, sự chuyển động của hai động cơ servo tạo ra chuyển động ba chiều.
Có hai trường hợp sử dụng của ứng dụng:
- Trường hợp sử dụng 1: Các động cơ servo quay theo sự di chuyển của cần joystick:
- Các góc của các động cơ servo tỷ lệ thuận với các giá trị X và Y của joystick.
- Khi chúng ta thả cần joystick ⇒ tất cả các giá trị trả về về giá trị ở giữa ⇒ các động cơ servo tự động quay về vị trí trung tâm
- Trường hợp sử dụng 2: dùng joystick để điều khiển các động cơ servo (lên/xuống/phải/trái)
- Khi cần joystick được đẩy sang trái, di chuyển động cơ servo #1 theo chiều kim đồng hồ từng bước
- Khi cần joystick được đẩy sang phải, di chuyển động cơ servo #1 theo hướng ngược chiều kim đồng hồ từng bước
- Khi cần joystick được đẩy lên, di chuyển động cơ servo #2 theo chiều kim đồng hồ từng bước
- Khi cần joystick được đẩy xuống, di chuyển động cơ servo #2 theo hướng ngược kim đồng hồ từng bước
- Khi thả cần joystick ⇒ các động cơ servo sẽ không quay về vị trí trung tâm
- Nếu joystick được nhấn (nút nhấn), các động cơ servo sẽ trở về vị trí trung tâm
- Kết nối Arduino với máy tính qua cáp USB
- Mở Arduino IDE, chọn board và cổng phù hợp
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn nút Tải lên trên Arduino IDE để nạp mã vào Arduino
- Mở Serial Monitor
- Đẩy joystick theo một hướng
- Xem sự quay của động cơ servo
- Xem kết quả trên Serial Monitor
- Đi đến biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
- Tìm kiếm “ezButton”, sau đó tìm thư viện nút do ArduinoGetStarted.com cung cấp.
- Nhấp vào nút Cài đặt để cài đặt thư viện ezButton.
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấp vào nút Tải lên trên Arduino IDE để tải mã lên Arduino
- Mở Serial Monitor
- Đẩy joystick theo một hướng
- Xem sự quay của động cơ servo
- Xem kết quả trên Serial Monitor
Chúng ta sẽ khám phá mã cho cả hai trường hợp sử dụng ở các phần tiếp theo.

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 | × | Joystick | ||
| 2 | × | động cơ servo | ||
| 2 | × | Optionally, Pan-tilt kit with servo motor | ||
| 1 | × | dây jumper | ||
| 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) |
Giới thiệu về Joystick và động cơ servo
Nếu bạn không biết về joystick và động cơ servo (bố trí chân, cách chúng hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các bài hướng dẫn sau đây:
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Mã Arduino
Mã Arduino - Các động cơ servo quay theo sự di chuyển của ngón cái trên joystick
Hướng dẫn từng bước

Mã Arduino - Sử dụng joystick để điều khiển các động cơ servo
Hướng dẫn từng bước

Giải thích mã nguồn
Đọc lời giải thích từng dòng trong các dòng chú thích của mã nguồn!
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.