(Khóa học: Lập trình & Điều khiển Động Cơ từ Cơ Bản tới Nâng Cao)
📘 Giới thiệu
Servo là loại động cơ đặc biệt có thể quay đến góc chính xác theo tín hiệu điều khiển.
Chúng được sử dụng rất phổ biến trong robot, đặc biệt ở các ứng dụng như:
- Tay robot gắp đồ
- Cổ robot quay camera / cảm biến
- Cửa tự động hoặc cơ cấu chuyển hướng bánh xe
Trong bài này, bạn sẽ học nguyên lý hoạt động của servo, cách lập trình điều khiển góc quay bằng ESP32, và tạo chuyển động tự động theo mẫu.
⚡ 1. Nguyên lý hoạt động của Servo
Servo hoạt động dựa trên tín hiệu PWM (Pulse Width Modulation):
- Chu kỳ PWM cố định: 20ms (tần số 50Hz)
- Độ rộng xung HIGH quyết định góc quay:
- 1ms → Góc 0°
- 1.5ms → Góc 90°
- 2ms → Góc 180°
Servo thường có 3 dây:
| Dây | Màu thường gặp | Chức năng |
|---|---|---|
| VCC | Đỏ | Nguồn 5V |
| GND | Nâu / Đen | Mass |
| Signal | Vàng / Cam | Tín hiệu điều khiển |
🔌 2. Sơ đồ kết nối ESP32 + Servo SG90

| ESP32 Pin | Servo SG90 | Ghi chú |
|---|---|---|
| GPIO5 | Signal | Chân tín hiệu điều khiển |
| 5V | VCC | Nguồn servo |
| GND | GND | Mass chung |
⚠️ Servo nên cấp nguồn riêng 5V–6V (từ pin hoặc module nguồn), tránh lấy trực tiếp từ ESP32 nếu dùng nhiều servo.
💻 3. Code mẫu: Điều khiển góc quay servo
/*
* Bài 11 - IoTLabs Motor Course
* Điều khiển servo bằng ESP32 (quay góc 0° - 180°)
*/
#include <Servo.h>
Servo myServo;
int servoPin = 5;
void setup() {
myServo.attach(servoPin);
Serial.begin(115200);
Serial.println("Servo Control Demo");
}
void loop() {
for (int pos = 0; pos <= 180; pos += 10) {
myServo.write(pos);
Serial.print("Góc quay: "); Serial.println(pos);
delay(300);
}
for (int pos = 180; pos >= 0; pos -= 10) {
myServo.write(pos);
Serial.print("Góc quay: "); Serial.println(pos);
delay(300);
}
}
✅ Kết quả: Servo quay từ 0° → 180° rồi quay ngược lại liên tục, tạo chuyển động mượt.
🧠 4. Giải thích
- Thư viện
Servo.hgiúp dễ dàng gửi xung PWM điều khiển góc. myServo.write(angle)gửi tín hiệu tương ứng góc 0–180°.- Có thể điều chỉnh tốc độ quay bằng cách thay đổi
delay().
🧩 5. Ứng dụng mở rộng
Servo được ứng dụng rất linh hoạt trong robot và IoT:
- Cơ cấu tay robot 3–6 trục
- Cảm biến xoay theo hướng di chuyển
- Camera tracking theo vật thể
- Cửa hoặc barrier tự động
💪 6. Nâng cao: Điều khiển nhiều servo cùng lúc
Nếu muốn điều khiển nhiều servo (ví dụ: 3 servo tay robot), bạn có thể dùng nhiều chân GPIO:
#include <Servo.h>
Servo s1, s2, s3;
void setup() {
s1.attach(5);
s2.attach(18);
s3.attach(19);
}
void loop() {
s1.write(0); s2.write(90); s3.write(180);
delay(1000);
s1.write(180); s2.write(0); s3.write(90);
delay(1000);
}
📦 7. Linh kiện cần thiết
| Linh kiện | Số lượng | Ghi chú |
|---|---|---|
| ESP32 DevKit 38 Pin | 1 | Bộ điều khiển |
| Servo SG90 / MG90S | 1–3 | Tùy số trục |
| Nguồn 5V / pin 18650 + module nguồn | 1 | Cấp cho servo |
| Dây nối, Breadboard | – |
🚀 8. Kết luận
Servo là linh kiện quan trọng trong thế giới robot, giúp tạo chuyển động chính xác và linh hoạt.
Nắm vững cách điều khiển servo bằng ESP32 là nền tảng để bạn thiết kế tay robot, cổ xoay camera, robot biểu cảm hoặc robot AI trong các bài học nâng cao.


Để lại một bình luận