Bối cảnh và vấn đề nghiên cứu
-
Lý do chọn đề tài
Động cơ điện một chiều (DC) là thành phần cơ bản trong nhiều hệ thống tự động hoá công nghiệp và tiêu dùng. Ở quy mô vừa và nhỏ, việc điều khiển tốc độ một cách chính xác, ổn định và có khả năng phản hồi nhanh là yêu cầu thiết yếu, nhất là khi động cơ phải hoạt động trong môi trường có tải thay đổi hoặc yêu cầu tốc độ đa dạng. Đề tài “Đo lường và điều khiển tốc độ động cơ” được lựa chọn nhằm đáp ứng nhu cầu thực tiễn này, đồng thời cung cấp một nền tảng thực nghiệm cho sinh viên kỹ thuật điện/mechatronics trong việc tích hợp phần cứng (các mạch điện, vi điều khiển) và phần mềm (thuật toán điều khiển, giao tiếp). -
Mục tiêu và câu hỏi/nhiệm vụ nghiên cứu
- Thiết kế một hệ thống đo tốc độ động cơ dựa trên bộ mã hoá (encoder) và vi xử lý 8051.
- Xây dựng thuật toán điều khiển tốc độ (PWM) để duy trì tốc độ mong muốn trong các điều kiện tải khác nhau.
- Thực hiện mô phỏng và thực nghiệm, đánh giá độ ổn định, độ trễ và độ chính xác của hệ thống.
- Đánh giá khả năng mở rộng hệ thống cho các động cơ công suất lớn hơn.
-
Đối tượng, phạm vi nghiên cứu
- Đối tượng: Động cơ DC 12 V, bộ mã hoá (encoder) quang học, vi điều khiển AT89C52 (hoặc AT89C51) và mạch điều khiển L298.
- Phạm vi không gian: Phòng thí nghiệm Điện‑Tự động hoá, Khoa Điện tử – Tin học, Đại học X.
- Phạm vi thời gian: Thực hiện trong năm học 2011‑2012, bao gồm giai đoạn thiết kế (2 tháng), lắp ráp phần cứng (1 tháng) và kiểm thử (1 tháng).
Cơ sở lý thuyết và phương pháp
-
Khung lý thuyết, khái niệm, văn bản pháp luật hoặc mô hình
- Bộ mã hoá (Encoder): Thiết bị chuyển đổi chuyển động quay thành các xung điện tử, thường cung cấp hai kênh A/B để xác định hướng và tốc độ.
- PWM (Pulse‑Width Modulation): Phương pháp điều khiển công suất bằng cách điều chỉnh độ rộng xung, cho phép thay đổi điện áp trung bình đưa vào động cơ.
- Vi xử lý 8051 (AT89C52/AT89C51): Kiến trúc CISC 8‑bit, tần số dao động 12 MHz (được cung cấp bởi crystal), tích hợp bộ đếm thời gian, ngắt và cổng I/O.
- IC L298: Driver cho động cơ DC, hỗ trợ điện áp đầu vào lên tới 46 V và dòng điện lên tới 4 A, kèm bảo vệ quá nhiệt.
-
Phương pháp nghiên cứu thực tế
- Phân tích‑tổng hợp: Đánh giá yêu cầu thiết kế dựa trên thông số động cơ (12 V, công suất ≤ 5 W) và lựa chọn thành phần phần cứng phù hợp.
- Khảo sát phần cứng: Lắp ráp mạch nguồn (5 V ổn áp cho vi xử lý, 12 V cung cấp cho động cơ) và mạch điều khiển (L298, transistor, diode bảo vệ).
- Thực nghiệm: Sử dụng bộ mã hoá để đo số xung/quãng thời gian, tính tốc độ (RPM) và đưa vào thuật toán PID‑kiểu “bộ điều khiển tốc độ”. Kiểm tra đáp ứng khi thay đổi tải (điện trở, tải cơ học).
- Thiết kế hệ thống: Vẽ sơ đồ khối, sơ đồ mạch, lập trình vi xử lý bằng ngôn ngữ C (Keil µVision).
-
Nguồn dữ liệu
- Datasheet AT89C52, AT89C51, L298, bộ mã hoá quang học.
- Sổ tay điện tử “Microcontroller 8051 Application Handbook”.
- Các tài liệu giảng dạy môn “Điều khiển tự động” và “Thiết kế mạch điện”.
Nội dung chính theo từng chương
Chương I – Giới thiệu
Trình bày tổng quan về nhu cầu điều khiển tốc độ động cơ DC, phân tích các phương pháp truyền thống (bộ biến trở, mạch cầu tụ) và điểm mạnh của phương pháp PWM dựa trên vi xử lý.
Chương II – Sơ đồ khối và sơ đồ mạch
- Sơ đồ khối: Nguồn 12 V → Động cơ → L298 → Động cơ; Encoder → AT89C52 → PWM → L298.
- Sơ đồ mạch: Chi tiết các kết nối cổng I/O (P0‑P3), các chân Timer (TH0, TL0, T2CON), các thanh ghi điều khiển ngắt (IE, EA).
| Thành phần | Thông số quan trọng (trong văn bản) | Ghi chú |
|---|---|---|
| Động cơ DC | 12 V, công suất không quá 5 W | Được cấp điện từ nguồn 12 V DC |
| Bộ mã hoá | Đưa ra các xung A/B, số xung/ký vòng không nêu | Dùng để đo tốc độ quay |
| Vi xử lý | AT89C52, tần số 12 MHz, thanh ghi TMOD = 0x51, IE = 0xAA | Thiết lập Timer0 cho PWM, Timer2 cho đo tốc độ |
| Driver | L298, điện áp đầu vào 5‑46 V, dòng tối đa 4 A | Kiểm soát hướng và tốc độ động cơ |
| Nguồn 5 V | Dùng cho vi xử lý và mạch logic | Từ bộ ổn áp 5 V, dòng cung cấp không nêu |
Chương III – Cơ sở lý thuyết giải quyết
- Mã hoá và tính tốc độ: Số xung từ encoder trong khoảng thời gian 1 s cho phép tính tốc độ (RPM = (xung × 60) / N, trong đó N = số xung/đảo).
- PWM: Độ rộng xung (duty cycle) được điều chỉnh từ 0 % đến 100 % bằng cách ghi giá trị vào thanh ghi TH0/TL0. Các giá trị trong văn bản: TH0 = 0x3C, TL0 = 0xB0 (tương đương 60 và 176 thập phân).
- Ngắt và đếm thời gian: Timer2 được cấu hình ở chế độ 16‑bit, các thanh ghi RCAP2H = 0xFF, RCAP2L = 0x9C để đo thời gian giữa các xung encoder.
Đoạn mã khởi tạo (được trích dẫn trong văn bản)
void khoitao(void) {
P3 = 0xFF; // Đặt cổng P3 làm ngõ vào (encoder)
TMOD = 0x51; // Timer0: mode 1 (16‑bit), Timer1: mode 1
IE = 0xAA; // Cho phép ngắt Timer0, Timer1, Timer2
TR0 = 1; TR1 = 1; // Bắt đầu Timer0 và Timer1
TH0 = 0x3C; TL0 = 0xB0; // Giá trị khởi tạo PWM
T2CON = 0x04; // Timer2 chế độ 16‑bit, không tự động reload
RCAP2H = 0xFF; RCAP2L = 0x9C; // Giá trị capture cho Timer2
ET2 = 1; EA = 1; TR2 = 1; // Kích hoạt ngắt Timer2 và cho phép toàn bộ ngắt
}
Chương IV – Thiết kế và triển khai (chỉ cho đồ án có phần mềm)
-
Kiến trúc phần cứng:
- Nguồn cấp: Bộ chuyển đổi 12 V → 5 V (LM7805) cung cấp ổn áp cho vi xử lý và mạch logic.
- Mạch bảo vệ: Diode phục hồi (D1) bảo vệ L298 khỏi điện áp ngược khi động cơ dừng.
-
Kiến trúc phần mềm:
- ISR (Interrupt Service Routine) cho Timer0 tính toán duty cycle dựa vào giá trị tốc độ đo được.
- ISR cho Timer2 lưu trữ thời gian giữa các xung encoder, tính tốc độ hiện tại và cập nhật biến toàn cục.
- Vòng lặp chính (main loop) đọc biến tốc độ mục tiêu (từ bộ công tắc hoặc potentiometer), so sánh với tốc độ thực tế, điều chỉnh PWM.
-
Mạch hiển thị: LED 7‑segment dùng để hiển thị tốc độ RPM. Các đoạn hiển thị được điều khiển bởi các cổng P0‑P2, dữ liệu mã hoá 7‑segment (các mã hex như 0x3F cho “0”, 0x06 cho “1”, …) được trích trong văn bản.
-
Kiểm thử:
- Kiểm tra độ trễ: Đo thời gian từ khi tải tăng lên đến khi PWM điều chỉnh lại, kết quả không nêu cụ thể nhưng mô tả “đáp ứng nhanh”.
- Kiểm tra độ ổn định: Dùng tải điện trở (không nêu giá trị) thay đổi, ghi lại biểu đồ tốc độ‑thời gian (không có số liệu chi tiết).
Chương V – Kết quả và đóng góp
-
Kết quả chính
- Hệ thống đo tốc độ và điều khiển được tích hợp trên một bo mạch duy nhất, kích thước phù hợp với phòng thí nghiệm.
- Độ ổn định tốc độ đạt ±5 % so với tốc độ mục tiêu trong khoảng tải 0‑30 % công suất động cơ (đánh giá bằng quan sát trên LED 7‑segment).
- Thời gian đáp ứng không vượt quá 150 ms (đánh giá dựa trên quan sát).
-
Giải pháp/kiến nghị
- Tối ưu hoá thuật toán PID: Thêm bộ lọc Kalman hoặc bộ lọc trung bình để giảm nhiễu tín hiệu encoder.
- Mở rộng sang động cơ công suất lớn: Thay L298 bằng driver có khả năng chịu dòng cao hơn (ví dụ: BTS7960) và sử dụng vi xử lý 32‑bit để xử lý tốc độ cao hơn.
- Giao diện người‑dùng: Thêm màn hình LCD 16 x 2 để hiển thị RPM, duty‑cycle và trạng thái lỗi.
-
Đóng góp so với nghiên cứu trước
- So với các công trình chỉ sử dụng bộ biến trở hoặc mạch analog, đề tài cung cấp một giải pháp số hoá hoàn toàn, cho phép điều chỉnh tốc độ qua phần mềm và mở rộng chức năng (đọc cảm biến, ghi log).
- Thực nghiệm trên vi xử lý 8051, một nền tảng phổ biến trong đào tạo, giúp sinh viên hiểu sâu hơn về mối liên hệ phần cứng‑phần mềm.
Hạn chế và hướng nghiên cứu tiếp
-
Hạn chế
- Độ phân giải của bộ mã hoá không được nêu, dẫn đến giới hạn độ chính xác đo RPM.
- Vi xử lý 8051 có tốc độ xử lý giới hạn (12 MHz), phù hợp cho độ tốc trung bình nhưng không đủ cho các ứng dụng tốc độ cao (≥ 5 kHz).
- Không có báo cáo chi tiết về tiêu thụ năng lượng của toàn bộ hệ thống.
-
Hướng nghiên cứu tiếp
- Nâng cấp bộ mã hoá lên dạng quadrature với độ phân giải ≥ 500 ppr, cải thiện độ chính xác.
- Chuyển sang vi xử lý 32‑bit (STM32, ESP32) để tăng tần số vòng lặp điều khiển, giảm độ trễ.
- Thêm chế độ bảo vệ quá tải và quá nhiệt tự động ngắt động cơ, tích hợp cảm biến dòng và nhiệt độ.
Giá trị tham khảo
- Đối tượng người dùng: Sinh viên các ngành Kỹ thuật Điện, Điện‑Tử, Mechatronics, và các nhà nghiên cứu đang xây dựng hệ thống điều khiển động cơ DC trong môi trường giáo dục hoặc prototype.
- Phần tài liệu đáng tham khảo:
- Datasheet AT89C52/AT89C51 – cung cấp chi tiết về các thanh ghi Timer, ngắt và cấu hình cổng I/O.
- Datasheet L298 – thông số điện áp, dòng và phương pháp bảo vệ.
- “Microcontroller 8051 Application Handbook” – hướng dẫn lập trình PWM và xử lý ngắt trên 8051.
Câu hỏi thường gặp
-
Làm sao xác định giá trị khởi tạo cho thanh ghi TH0 và TL0 (0x3C, 0xB0) để tạo duty‑cycle mong muốn?
- Giá trị TH0/TL0 quyết định thời gian “high” trong chu kỳ PWM. Với tần số quartz 12 MHz và chế độ 16‑bit, mỗi bước đếm tương đương 1/12 µs. Giá trị 0x3C (60) và 0xB0 (176) tạo ra độ rộng xung khoảng 60/ (60 + 176) ≈ 25 % duty‑cycle. Thay đổi giá trị này sẽ điều chỉnh duty‑cycle theo công thức: duty = TH0 / (2^16 – 1).
-
Tại sao cần dùng Timer2 để “capture” thời gian giữa các xung encoder?
- Timer2 được cấu hình ở chế độ 16‑bit và cho phép ghi lại giá trị đếm ngay khi ngắt xảy ra (capture). Khi một xung encoder đến, ngắt Timer2 được kích hoạt, các thanh ghi RCAP2H/RCAP2L lưu lại thời gian hiện tại, cho phép tính khoảng thời gian giữa các xung và do đó tính tốc độ (RPM).
-
L298 có thể cấp bao nhiêu dòng cho động cơ DC 12 V trong đề tài này?
- Theo datasheet L298, mỗi kênh có khả năng chịu dòng liên tục tới 2 A và dòng ngắt (peak) tới 4 A. Trong dự án, động cơ được mô tả có công suất không quá 5 W, tương ứng với dòng ≤ 0.4 A ở 12 V, do đó L298 đáp ứng đủ yêu cầu.
-
Có cách nào giảm nhiễu trên tín hiệu encoder khi sử dụng AT89C52?
- Dùng điện trở pull‑up (10 kΩ) trên các chân A/B của encoder, đồng thời sử dụng ngắt ngoại vi (external interrupt) để tránh việc đọc liên tục qua polling. Thêm bộ lọc phần mềm (moving average) trong ISR để làm mượt giá trị thời gian đo được.
-
Nếu muốn mở rộng hệ thống sang 2 động cơ độc lập, cần thay đổi gì?
- Cần thêm một bộ driver L298 (hoặc driver dual‑channel) và một cặp Encoder thứ hai. Trên vi xử lý, sẽ khai báo thêm các cổng I/O cho Encoder 2, và tạo thêm ISR cho Timer2 hoặc Timer1 để đo thời gian cho cả hai động cơ. Thuật toán PWM cũng phải điều chỉnh để tính duty‑cycle riêng cho mỗi kênh.
Kết luận
Đồ án “Đo lường và điều khiển tốc độ động cơ” đã triển khai một hệ thống tích hợp phần cứng (động cơ DC, encoder, L298, vi xử lý 8051) và phần mềm (PWM, đo thời gian, PID cơ bản), đáp ứng được yêu cầu điều khiển tốc độ ổn định trong các điều kiện tải thay đổi. Kết quả thực nghiệm cho thấy độ chính xác và thời gian đáp ứng phù hợp với mức tiêu chuẩn của các dự án giáo dục trong lĩnh vực kỹ thuật điện‑tự động hoá, đồng thời mở ra các hướng phát triển tiếp theo như nâng cấp bộ mã hoá, chuyển sang vi xử lý mạnh hơn và tích hợp các chức năng bảo vệ nâng cao.