Arduino UNO R4 Servo Motor (Động Cơ Servo)

Hướng dẫn này sẽ dạy bạn cách điều khiển động cơ servo bằng Arduino UNO R4. Cụ thể, chúng ta sẽ học:

Arduino UNO R4 động cơ servo

Linh Kiện Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
1×Cáp USB Type-C
1×Động Cơ Servo
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Động Cơ Servo

Động cơ servo là một linh kiện có thể xoay trục của nó, thường từ 0 độ đến 180 độ. Nó được sử dụng để điều khiển góc của một vật thể.

Sơ Đồ Chân

Ví dụ này sử dụng động cơ servo với ba chân:

  • Chân VCC: Kết nối dây màu đỏ với VCC (5 volt).
  • Chân GND: Kết nối dây màu đen hoặc nâu với GND (0 volt).
  • Chân Signal: Kết nối dây màu vàng hoặc cam để nhận tín hiệu điều khiển PWM từ chân Arduino UNO R4.
động cơ servo sơ đồ chân

Sơ Đồ Đấu Nối

Đôi khi, bạn có thể thấy các sơ đồ đấu nối trực tuyến cho thấy kết nối giữa chân VCC của động cơ servo và chân 5V trên bo mạch Arduino UNO R4. Tốt nhất là tránh phương pháp này vì nó có thể gây hại cho bo mạch Arduino UNO R4.

Arduino UNO R4 động cơ servo sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Để bảo vệ bo mạch Arduino UNO R4 của bạn, tốt nhất là sử dụng nguồn điện ngoài cho động cơ servo. Sơ đồ đấu nối dưới đây cho thấy cách kết nối động cơ servo với nguồn điện ngoài.

Arduino UNO R4 động cơ servo external power supply sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Đảm bảo kết nối GND (mass) của nguồn điện ngoài với GND của bo mạch Arduino UNO R4. Bước này rất quan trọng để hoạt động chính xác.

Cách Lập Trình Cho Động Cơ Servo

  • Khai báo thư viện:
#include <Servo.h>
  • Tạo đối tượng Servo:
Servo servo;

Nếu bạn quản lý nhiều động cơ servo, chỉ cần khai báo thêm các đối tượng Servo.

Servo servo1; Servo servo2;
  • Kết nối chân điều khiển của Arduino UNO R4 với chân tín hiệu của động cơ servo, chẳng hạn như chân 9.
servo.attach(9);
  • Cuối cùng, xoay động cơ servo đến góc bạn cần, như 90 độ.
servo.write(90);

Code Arduino UNO R4

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-servo-motor */ #include <Servo.h> Servo servo; // Initialize a Servo object to manage a servo void setup() { servo.attach(9); // Connects the servo on pin 9 to the servo object servo.write(0); // Moves the servo to 0 degrees immediately upon startup } void loop() { for (int pos = 0; pos <= 180; pos += 1) { // Gradually move the servo from 0 to 180 degrees servo.write(pos); // Set servo position to 'pos' degrees delay(10); // Delay 10ms to allow the servo to reach the new position } for (int pos = 180; pos >= 0; pos -= 1) { // Gradually move the servo from 180 back to 0 degrees servo.write(pos); // Set servo position to 'pos' degrees delay(10); // Delay 10ms to allow the servo to reach the new position } }

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

Làm theo những hướng dẫn này từng bước một:

  • Nếu đây là lần đầu tiên bạn sử dụng Arduino Uno R4 WiFi/Minima, hãy tham khảo hướng dẫn về Arduino UNO R4 - Cài Đặt Phần Mềm.
  • Đấu nối các linh kiện theo sơ đồ được cung cấp.
  • Kết nối bo mạch Arduino Uno R4 với máy tính của bạn bằng cáp USB.
  • Khởi động Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch Arduino Uno R4 phù hợp (ví dụ: Arduino Uno R4 WiFi) và cổng COM.
  • Dán đoạn code trên vào Arduino IDE.
  • Nhấn nút Upload trong Arduino IDE để gửi code lên Arduino UNO R4.
Arduino ide - how to upload code
  • Quan sát kết quả: Động cơ servo xoay từ từ từ 0 đến 180 độ rồi từ từ xoay ngược lại từ 180 về 0 độ.

Giải Thích Code

Bạn có thể xem phần giải thích trong phần comment của đoạn code Arduino ở trên.

Cách Điều Khiển Tốc Độ Của Động Cơ Servo

Sử dụng các hàm map()millis() cho phép chúng ta điều chỉnh tốc độ của động cơ servo một cách mượt mà trong khi vẫn cho phép các đoạn code khác chạy mà không bị gián đoạn.

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 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/arduino-uno-r4/arduino-uno-r4-servo-motor */ #include <Servo.h> Servo servo; #define MOVING_TIME 3000 // Duration for the servo to move from startAngle to stopAngle unsigned long moveStartTime; // Timestamp when the servo starts moving int startAngle = 30; // Initial angle in degrees int stopAngle = 90; // Final angle in degrees void setup() { servo.attach(9); // Attach the servo on pin 9 to the servo object moveStartTime = millis(); // Initialize timer at the start of setup() // Additional initialization code can be added here } void loop() { unsigned long progress = millis() - moveStartTime; // Calculate elapsed time since start if (progress <= MOVING_TIME) { // During the defined MOVING_TIME period long angle = map(progress, 0, MOVING_TIME, startList and stopAngle); // Calculate intermediate servo angle servo.write(angle); // Set servo position to calculated angle } // Additional repetitive code can be added here }

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.