Arduino điều khiển động cơ servo qua Bluetooth

Trong hướng dẫn này, chúng ta sẽ học cách lập trình Arduino để điều khiển một động cơ servo bằng Bluetooth (mô-đun HC-05) hoặc BLE (mô-đun HM-10). Các hướng dẫn cho cả hai mô-đun được cung cấp.

Chúng tôi sẽ sử dụng Bluetooth Serial Monitor App trên điện thoại thông minh để gửi giá trị góc tới Arduino. Arduino sẽ điều khiển động cơ servo theo giá trị nhận được.

Động cơ servo Arduino Bluetooth

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×HC-05 Bluetooth Module
1×(Hoặc) HM-10 BLE Module
1×động cơ servo
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)

Về động cơ servo và mô-đun Bluetooth

Nếu bạn chưa quen với các động cơ servo và các mô-đun Bluetooth, bao gồm các sơ đồ chân, chức năng và cách lập trình của chúng, vui lòng tham khảo các bài hướng dẫn dưới đây để biết thêm thông tin:

Sơ đồ đấu dây

  • Để điều khiển một động cơ servo bằng Bluetooth cổ điển, hãy sử dụng module Bluetooth HC-05 và tham khảo sơ đồ kết nối được cung cấp dưới đây.
sơ đồ nối dây Arduino với động cơ servo và Bluetooth

This image is created using Fritzing. Click to enlarge image

  • Để điều khiển động cơ Servo bằng BLE, hãy sử dụng mô-đun HM-10 BLE và tham khảo sơ đồ đấu nối được cung cấp ở bên dưới.
sơ đồ nối dây Arduino cho động cơ servo ble

This image is created using Fritzing. Click to enlarge image

Mã Arduino - điều khiển động cơ servo qua Bluetooth/BLE

Đoạn mã dưới đây tương thích với cả mô-đun Bluetooth HC-10 và mô-đun HM-10 BLE.

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-controls-servo-motor-via-bluetooth */ // NOTE: change the Serial to other Serial/Software Serial if you connects Bluetooth module to other pins #include <Servo.h> Servo servo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { Serial.begin(9600); servo.attach(11); // attaches the servo on pin 11 to the servo object } void loop() { if (Serial.available()) { // if there is data comming int angle = Serial.parseInt(); if (angle >= 0 && angle <= 180) { servo.write(angle); // rotate servo Serial.print("Rotated servo to angle: ");// reports action to smartphone app Serial.println(angle); } else { Serial.print("Invalid angle: ");// reports invalid value to smartphone app Serial.println(angle); } } }

Hướng dẫn từng bước

  • Cài đặt Bluetooth Serial Monitor App trên điện thoại thông minh của bạn
  • Sao chép mã được cung cấp và mở nó bằng Arduino IDE, sau đó tải nó lên bo mạch Arduino của bạn.
  • Nếu bạn gặp sự cố khi tải mã lên, hãy thử ngắt kết nối các chân TX và RX từ mô-đun Bluetooth, tải mã lên, sau đó kết nối lại các chân RX/TX.
  • Mở ứng dụng Bluetooth Serial Monitor trên điện thoại thông minh của bạn và chọn tùy chọn Classic Bluetooth hoặc BLE, tùy thuộc vào mô-đun bạn đang sử dụng.
Ứng dụng trình giám sát nối tiếp Bluetooth
  • Ghép nối ứng dụng với mô-đun Bluetooth HC-05 hoặc mô-đun HM-10 BLE.
ghép đôi Bluetooth với serial monitor
  • Nhập một giá trị góc (ví dụ: 45 hoặc 90) và nhấn nút Gửi.
Ứng dụng giám sát nối tiếp Bluetooth
  • Bạn sẽ thấy góc của động cơ servo thay đổi.
  • Quan sát kết quả trên ứng dụng Android.
Ứng dụng giám sát nối tiếp Bluetooth

Nếu ứng dụng Bluetooth Serial Monitor hữu ích cho bạn, hãy cho nó đánh giá 5 sao trên Play Store. Xin cảm ơ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.

Tham khảo Hàm