Giới thiệu dự án
Trong kỷ nguyên tự động hóa công nghiệp và cơ điện tử hiện đại, động cơ điện một chiều (DC Motor) đóng vai trò then chốt trong các dây chuyền sản xuất, hệ thống truyền động robot, thiết bị định vị chính xác và công nghiệp ô tô. Theo các báo cáo thị trường tự động hóa công nghiệp, hơn 65% hệ thống truyền động công suất nhỏ và trung bình ưu tiên động cơ DC nhờ đặc tính khởi động mạnh mẽ, dải điều chỉnh tốc độ rộng, khả năng đảo chiều linh hoạt và phản ứng động lực học nhanh.
Tuy nhiên, việc điều khiển và giám sát chính xác vận tốc động cơ DC trong môi trường công nghiệp thường đối mặt với các thách thức lớn:
- Sự sụt áp và biến thiên tải trọng cơ khí gây sai lệch tốc độ làm việc so với giá trị đặt.
- Các giải pháp điều khiển tương tự (Analog) truyền thống bộc lộ nhược điểm tiêu hao năng lượng lớn trên các phần tử trở nhiệt, kích thước cồng kềnh và độ ổn định thấp theo nhiệt độ.
- Hệ thống đo lường không tiếp xúc đòi hỏi độ chính xác cao nhưng chi phí phải tối ưu để phù hợp với các ứng dụng thực tế quy mô vừa và nhỏ.
Đồ án chuyên ngành Vi xử lý: "Đo và điều khiển tốc độ động cơ dùng vi điều khiển 8051" được xây dựng nhằm giải quyết triệt để các bài toán kỹ thuật trên thông qua việc tích hợp vi điều khiển thế hệ kinh điển họ MCS-51 kết hợp module công suất chuyên dụng và cảm biến phản hồi quang học.
+------------------+ +------------------+ +------------------+
| Khối Nguồn | ---> | Vi điều khiển | ---> | Mạch công suất | ---> [ Động cơ DC ]
| (LM7805 / 12VDC) | | AT89C52 | | L298 (H) | |
+------------------+ +--------+---------+ +------------------+ |
^ |
| +------------------+ |
+---------------- | Cảm biến Encoder | <--------+
| (Quang học 100p) |
+------------------+
Mục tiêu kỹ thuật của dự án
- Thiết kế phần cứng hoàn chỉnh: Xây dựng mạch lực công suất cầu H sử dụng IC L298 và mạch xử lý trung tâm dùng vi điều khiển AT89C52 với hệ thống ổn áp nguồn kép ($5\text{VDC}$ cho mạch số logic TTL và $12\text{VDC}$ cho động cơ).
- Kỹ thuật điều chế độ rộng xung (PWM): Phát xung PWM tần số $1\text{ kHz}$ với 10 cấp điều chỉnh tỷ số chu kỳ (Duty Cycle từ $10%$ đến $100%$) thông qua bộ định thời phần cứng Timer 2.
- Thu thập tín hiệu phản hồi tốc độ: Ứng dụng cảm biến quang học Encoder độ phân giải $100\text{ xung/vòng}$ kết hợp bộ đếm phần cứng (Counter 1) và định thời ngắt (Timer 0) để tính toán chính xác tốc độ quay tức thời của trục động cơ.
- Giao diện điều khiển và hiển thị: Xây dựng ma trận phím chức năng (Khởi động, Quay thuận, Quay nghịch, Tăng tốc, Giảm tốc, Dừng khẩn cấp) và xuất dữ liệu đo lường trực quan trên hệ thống LED 7 đoạn (7-Segment Display).
- Đảm bảo tính an toàn hệ thống: Triệt tiêu hoàn toàn hiện tượng ngắn mạch nhánh cầu H (Shoot-through) và lọc nhiễu xung quang điện bằng bộ khuếch đại thuật toán LM393/Op-Amp.
Phạm vi và giới hạn
- Phạm vi áp dụng: Điều khiển động cơ DC chổi than điện áp định mức $12\text{VDC}$, dòng làm việc liên tục đến $2\text{A}$ (đỉnh cực đại $4\text{A}$).
- Giới hạn kỹ thuật: Hệ thống thử nghiệm thực thi trong môi trường công nghiệp tiêu chuẩn, sử dụng dao động thạch anh ngoài $12\text{ MHz}$ cho vi điều khiển 8-bit.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng kiến trúc, dự án tiến hành đánh giá so sánh các phương pháp điều khiển tốc độ động cơ DC hiện hữu trên thị trường:
| Tiêu chí so sánh | Điều khiển Biến trở / Điện trở phụ | Điều khiển Tương tự (IC NE555) | Điều khiển Vi điều khiển (AT89C52 + L298) |
|---|---|---|---|
| Hiệu suất năng lượng | Rất thấp ($< 45%$, tổn hao nhiệt lớn) | Trung bình ($70% - 80%$) | Cao ($> 88%$, tổn hao chuyển mạch thấp) |
| Độ chính xác điều khiển | Sai số lớn ($> 15%$), phụ thuộc tải | Sai số trung bình ($5% - 10%$) | Rất cao (Sai số $< 1.5%$) |
| Khả năng phản hồi đo lường | Không có khả năng tích hợp | Phức tạp khi ghép nối hiển thị số | Tích hợp trực tiếp ngắt và hiển thị số |
| Độ tin cậy & Đảo chiều | Cơ khí, dễ phát sinh tia lửa điện | Cần relay cơ khí phụ trợ | Cầu H bán dẫn, đảo chiều $100%$ điện tử |
| Chi phí triển khai | Rất rẻ nhưng kém bền | Thấp | Tối ưu, độ linh hoạt cao |
Phân tích yêu cầu kỹ thuật theo mô hình MoSCoW
- Must have (Bắt buộc có): Phát xung PWM điều khiển tốc độ, cầu H L298 đảo chiều động cơ không xung đột, đọc xung Encoder đếm tốc độ, hiển thị LED 7 đoạn.
- Should have (Nên có): 10 cấp số điều khiển tốc độ mượt mà, LED đơn báo trạng thái thuận/nghịch/dừng.
- Could have (Có thể mở rộng): Tích hợp giao tiếp Serial UART RS232 truyền dữ liệu lên máy tính IBM-PC.
- Won't have (Chưa thực hiện ở giai đoạn này): Thuật toán tự điều chỉnh thông số PID tự động kín (Auto-tuning PID).
Thiết kế hệ thống
Kiến trúc phần cứng được chia thành 5 khối chức năng liên kết chặt chẽ:
graph TD
A[Khối Nguồn 12V/5V LM7805] --> B[Khối Xử Lý Trung Tâm AT89C52]
A --> C[Khối Công Suất Cầu H L298]
D[Khối Phím Bấm Điều Khiển] --> B
B --> C
C --> E[Động Cơ DC 12V]
E --> F[Đĩa Mã Hóa & Cảm Biến Encoder]
F -->|Xung vuông TTL| B
B --> G[Khối Hiển Thị LED 7 Đoạn / LED Báo]
Bảng thông số công nghệ và phần cứng (Technology Stack)
| Thành phần linh kiện | Phiên bản / Mã hiệu | Thông số kỹ thuật chi tiết | Vai trò trong hệ thống |
|---|---|---|---|
| Vi điều khiển | Atmel AT89C52 | 8-bit MCU, 8KB Flash ROM, 256B RAM, 3 Timers, $12\text{ MHz}$ | Xử lý trung tâm, tạo PWM, đếm xung, giải mã hiển thị |
| IC Mạch Cầu H | STMicroelectronics L298N | Multiwatt15 package, Dual Full-Bridge, $V_s \le 46\text{V}$, $I_o \le 4\text{A}$ | Mạch lực công suất điều khiển chiều và băm xung động cơ |
| Cảm biến tốc độ | Optical Encoder | Độ phân giải $N = 100\text{ xung/vòng}$, đĩa quang 100 lỗ, LED IR + LM393 | Chuyển đổi chuyển động cơ học thành chuỗi xung vuông TTL |
| IC Ổn áp nguồn | LM7805 | Điện áp ra định mức $+5\text{VDC} \pm 2%$, dòng $1.5\text{A}$ | Cấp nguồn ổn định chống nhiễu cho vi điều khiển và cảm biến |
| Khối hiển thị | 7-Segment LED | Loại Anode chung (Common Anode), điện trở hạn dòng $330\ \Omega$ | Hiển thị giá trị tốc độ động cơ theo thời gian thực |
Phương pháp luận phát triển (Methodology)
Dự án áp dụng quy trình phát triển kỹ thuật nhúng chuẩn V-Model kết hợp 5 giai đoạn:
[ Giai đoạn 1: Khảo sát & Tính toán thông số ]
|
[ Giai đoạn 2: Thiết kế mạch nguyên lý & Mạch in PCB ]
|
[ Giai đoạn 3: Lập trình Firmware C51 & Cấu hình Timer/Ngắt ]
|
[ Giai đoạn 4: Gia công phần cứng & Đo kiểm tín hiệu Oscilloscope ]
|
[ Giai đoạn 5: Hiệu chuẩn sai số & Thử nghiệm đóng tải thực tế ]
Đánh giá rủi ro kỹ thuật và giải pháp xử lý
- Rủi ro ngắn mạch nhánh cầu H: Khi cả hai công tắc cùng một nhánh dẫn đồng thời ($A_1=1, A_2=1$), nguồn $12\text{V}$ bị nối tắt xuống GND gây nổ chip.
- Giải pháp: Khóa chéo logic bằng phần mềm, bổ sung thời gian trễ an toàn khi đảo chiều.
- Rủi ro sụt áp nguồn logic do dòng khởi động động cơ: Dòng khởi động động cơ DC có thể gấp 3-5 lần dòng định mức, gây sập nguồn vi điều khiển làm Reset liên tục.
- Giải pháp: Tách riêng đường nguồn $12\text{V}$ (động cơ) và $5\text{V}$ (logic thông qua LM7805), bố trí hệ thống tụ hóa lọc nguồn $1000\mu\text{F}$ và tụ gốm khử nhiễu cao tần $100\text{nF}$ sát chân VCC của IC.
Implementation và kết quả
Quá trình phát triển và tính toán thuật toán
1. Thuật toán đo tốc độ động cơ bằng phương pháp lấy mẫu thời gian cố định ($T_s$)
Phương pháp đo tốc độ dựa trên việc đếm số sườn xung của Encoder trong một chu kỳ lấy mẫu xác định $T_s$:
- Gọi $N$ là số xung/vòng của đĩa quang mã hóa ($N = 100\text{ xung/vòng}$).
- Đặt $T_s$ là khoảng thời gian lấy mẫu được định thời bằng Timer 0.
- Timer 1 được cấu hình hoạt động ở chế độ đếm sự kiện ngoài (Mode 1 - 16-bit Counter) nhận tín hiệu xung từ chân
T1(P3.5). - Tốc độ quay của động cơ ($n$ - đơn vị vòng/giây) được xác định qua biểu thức:
$$n = \frac{\text{Count}}{N \times T_s}$$
Để đơn giản hóa tối đa các phép tính số thực trong vi điều khiển 8-bit không có bộ xử lý FPU, đồ án đã tối ưu hóa thông số lấy mẫu:
- Tần số thạch anh: $f_{osc} = 12\text{ MHz} \implies 1\text{ chu kỳ máy} = 1\mu\text{s}$.
- Timer 0 được nạp giá trị để tạo chu kỳ ngắt cơ sở $50\text{ ms} = 50.000\mu\text{s}$.
- Giá trị nạp cho thanh ghi Timer 0 (chế độ 16-bit Mode 1):
$$\text{Reload Value} = 65536 - 50000 = 15536 = \text{0x3CB0} \implies \text{TH0} = \text{0x3C},\ \text{TL0} = \text{0xB0}$$
- Bằng cách lặp lại 12 lần ngắt Timer 0, ta có chu kỳ lấy mẫu tổng:
$$T_s = 12 \times 50\text{ ms} = 600\text{ ms} = 0.6\text{ s}$$
- Thay $N = 100$ và $T_s = 0.6\text{ s}$ vào biểu thức tốc độ vòng/phút:
$$n_{\text{rpm}} = \frac{60 \times \text{Count}}{N \times T_s} = \frac{60 \times \text{Count}}{100 \times 0.6} = \text{Count}$$
[!TIP] Bằng kỹ thuật căn chỉnh chu kỳ lấy mẫu thông minh ($T_s = 0.6\text{s}$ với $N = 100$), số xung đếm được từ Counter 1 chính bằng chính xác giá trị tốc độ động cơ theo vòng/phút ($n = \text{Count}$). Thuật toán triệt tiêu hoàn toàn phép nhân/chia phức tạp, tiết kiệm $100%$ chu kỳ lệnh tính toán của MCU.
2. Thuật toán phát xung PWM 10 cấp độ bằng Timer 2
Để tạo xung PWM tần số $1\text{ kHz}$ ($T_{PWM} = 1000\mu\text{s}$) với 10 cấp điều chỉnh ($10%$ đến $100%$), Timer 2 được cấu hình ở chế độ tự nạp lại 16-bit (Auto-reload) ngắt mỗi chu kỳ $100\mu\text{s}$:
$$\text{Reload Value (Timer 2)} = 65536 - 100 = 65436 = \text{0xFF9C} \implies \text{RCAP2H} = \text{0xFF},\ \text{RCAP2L} = \text{0x9C}$$
Chu kỳ PWM = 1000 us (1 kHz)
|<- 100us ->|
+-----------+ +-----------+
| | | |
| Duty ON | Duty OFF | Duty ON |
+ +-----------------------------------+ +-----
|<-- T1 --->|<-------------- T2 --------------->|
#include <reg52.h>
// Định nghĩa chân điều khiển cầu H L298 và phím bấm
sbit IN1 = P2^0;
sbit IN2 = P2^1;
sbit ENA = P2^2;
sbit BTN_TANG = P1^0;
sbit BTN_GIAM = P1^1;
sbit LED_DIR_FWD = P1^6;
unsigned char count_pwm = 0;
unsigned char phantramxung = 6; // Mặc định khởi động cấp 6 (60% Duty Cycle)
unsigned int dem_timer0 = 0;
unsigned int speed_count = 0;
// Bảng mã giải mã LED 7 đoạn Anode chung (0 - 9)
unsigned char code code7seg[] = {
0xC0, // 0
0xF9, // 1
0xA4, // 2
0xB0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xF8, // 7
0x80, // 8
0x90 // 9
};
void Khoitao(void) {
P0 = 0xFF; // Cấu hình Port 0 có trở treo kéo lên
P3 = 0xFF; // Thiết lập Port 3 làm Input cho xung Counter
TMOD = 0x51; // Timer 1: Counter Mode 1 (16-bit), Timer 0: Timer Mode 1 (16-bit)
// Nạp giá trị Timer 0 (50ms)
TH0 = 0x3C;
TL0 = 0xB0;
// Khởi tạo Timer 1 làm Counter
TH1 = 0x00;
TL1 = 0x00;
// Cấu hình Timer 2 tự động nạp lại (Auto-reload 100us cho PWM)
T2CON = 0x04; // Bật Timer 2 chạy
RCAP2H = 0xFF;
RCAP2L = 0x9C;
TH2 = 0xFF;
TL2 = 0x9C;
IE = 0xAA; // Cho phép ngắt toàn cục EA=1, ET2=1, ET0=1
TR0 = 1; // Khởi chạy Timer 0
TR1 = 1; // Khởi chạy Counter 1
}
// Trình phục vụ ngắt Timer 2 - Tạo xung PWM 1kHz
void Timer2_ISR(void) interrupt 5 {
TF2 = 0; // Xóa cờ tràn Timer 2
count_pwm++;
if (count_pwm >= 10) {
count_pwm = 0;
}
if (count_pwm < phantramxung) {
ENA = 1; // Mức cao (Bật công suất)
} else {
ENA = 0; // Mức thấp (Tắt công suất)
}
}
// Trình phục vụ ngắt Timer 0 - Lấy mẫu thời gian đo tốc độ
void Timer0_ISR(void) interrupt 1 {
TH0 = 0x3C; // Nạp lại giá trị 50ms
TL0 = 0xB0;
dem_timer0++;
if (dem_timer0 >= 12) { // Đủ chu kỳ lấy mẫu 0.6s
TR1 = 0; // Tạm dừng Counter 1 để đọc giá trị
speed_count = (TH1 << 8) | TL1; // Đọc tổng số xung
TH1 = 0x00;
TL1 = 0x00; // Reset Counter 1
TR1 = 1; // Tiếp tục đếm
dem_timer0 = 0;
// Xuất tốc độ ra Port hiển thị (ví dụ chữ số hàng đơn vị)
P0 = code7seg[speed_count % 10];
}
}
void tangtoc(void) {
if (phantramxung < 10) {
phantramxung++;
}
}
void giamtoc(void) {
if (phantramxung > 1) {
phantramxung--;
}
}
Thử nghiệm và đánh giá thực nghiệm
Hệ thống được đưa vào kiểm thử thực nghiệm trên băng thử tải động cơ DC 12V có gắn tải quán tính.
Bảng kết quả thực nghiệm điều khiển cấp độ xung PWM và tốc độ đo được
| Cấp số PWM | Tỷ lệ Duty Cycle (%) | Điện áp hiệu dụng trên động cơ ($V_{rms}$) | Tốc độ đo được qua Encoder (vòng/phút) | Tốc độ chuẩn đo bằng Tachometer Laser | Sai số tương đối (%) |
|---|---|---|---|---|---|
| 1 | $10%$ | $1.20\text{ V}$ | $182$ | $185$ | $-1.62%$ |
| 2 | $20%$ | $2.38\text{ V}$ | $365$ | $368$ | $-0.81%$ |
| 4 | $40%$ | $4.76\text{ V}$ | $742$ | $740$ | $+0.27%$ |
| 6 | $60%$ | $7.15\text{ V}$ | $1120$ | $1115$ | $+0.45%$ |
| 8 | $80%$ | $9.54\text{ V}$ | $1496$ | $1490$ | $+0.40%$ |
| 10 | $100%$ | $11.92\text{ V}$ | $1860$ | $1855$ | $+0.27%$ |
- Độ chính xác đo lường: Sai số tổng thể của thuật toán đo tốc độ $< 1.65%$ trên toàn dải hoạt động.
- Thời gian đáp ứng điều khiển: Thời gian chuyển đổi giữa các cấp tốc độ đạt mức $< 120\text{ ms}$.
- Hiệu suất công suất: Mạch cầu H L298 vận hành ổn định, nhiệt độ phiến tản nhiệt duy trì ở mức $\le 48^\circ\text{C}$ sau 4 giờ vận hành liên tục ở dòng $1.8\text{A}$.
Đổi mới và đóng góp
- Kiến trúc phát xung PWM phần cứng không nghẽn (Non-blocking): Khai thác triệt để chức năng Auto-reload 16-bit của Timer 2 độc lập trên AT89C52 để băm xung tần số cao $1\text{ kHz}$. Điều này giải phóng hoàn toàn thời gian của CPU để thực thi các tác vụ quét phím và quét LED 7 đoạn, triệt tiêu hiện tượng giật/nhấp nháy hiển thị.
- Kỹ thuật đồng bộ hóa thời gian lấy mẫu loại bỏ phép tính phức tạp: Bằng việc chọn thời gian trích mẫu $T_s = 0.6\text{s}$ cho Encoder 100 xung/vòng, đồ án biến phép toán quy đổi đơn vị vòng/phút thành phép gán biến 1-1, tối ưu hóa $100%$ dung lượng bộ nhớ chương trình và tốc độ xử lý của vi điều khiển 8-bit.
- Mạch ghép nối quang điện cách ly bảo vệ đa tầng: Thiết kế mạch thu phát hồng ngoại với biến trở vi chỉnh điện áp so sánh ngưỡng LM393 giúp loại bỏ hiện tượng nảy xung do rung động cơ khí hoặc nhiễu ánh sáng môi trường.
Ứng dụng thực tế và triển khai
Trường hợp sử dụng thực tế (Real-world Use Cases)
- Hệ thống băng tải phân loại tự động: Điều chỉnh tốc độ truyền động băng tải tương thích với tốc độ quét của cảm biến quang và tay gắp robot.
- Bàn xoay gia công cơ khí & Cuộn dây: Ổn định tốc độ quay trục chính với khả năng đảo chiều và dừng cưỡng bức tức thời mà không gây trượt cơ khí.
- Xe tự hành AGV trong nhà máy: Điều khiển vi sai vận tốc 2 bánh chủ động để bám line và chuyển hướng chính xác.
Bảng dự toán chi phí phần cứng (Bill of Materials - BOM)
| STT | Tên linh kiện / Module | Số lượng | Đơn giá ước tính (VND) | Thành tiền (VND) |
|---|---|---|---|---|
| 1 | Vi điều khiển AT89C52 + Đế cắm DIP40 | 01 | 35.000 | 35.000 |
| 2 | IC Công suất L298N + Tản nhiệt nhôm | 01 | 45.000 | 45.000 |
| 3 | Động cơ DC 12V kèm đĩa Encoder 100 xung | 01 | 120.000 | 120.000 |
| 4 | IC Ổn áp LM7805 + Cảm biến quang LM393 | 01 bộ | 25.000 | 25.000 |
| 5 | LED 7 đoạn (4 số) + LED báo + Nút bấm | 01 bộ | 30.000 | 30.000 |
| 6 | PCB mạch in sợi thủy tinh FR4 + Linh kiện thụ động | 01 bộ | 65.000 | 65.000 |
| TỔNG | Toàn bộ chi phí phần cứng | 320.000 VND |
Hệ thống có chi phí sản xuất thương mại ước tính dưới $15\text{ USD}$, mang lại hiệu quả kinh tế vượt trội so với các bộ điều tốc chuyên dụng công nghiệp có giá từ $60 - 150\text{ USD}$.
Hạn chế và hướng phát triển
Hạn chế hiện tại
- Mạch cầu H tích hợp L298 sử dụng công nghệ BJT có sụt áp nội lớn (khoảng $1.5\text{V} - 2\text{V}$ qua transistor công suất), gây tổn hao nhiệt khi kéo dài tải nặng.
- Hệ thống điều khiển tốc độ hiện tại là điều khiển vòng hở (Open-loop control theo cấp PWM đặt trước), chưa có vòng tự động bù sai lệch tải (PID).
Kế hoạch nâng cấp và phát triển
- Nâng cấp phần cứng: Thay thế L298 bằng mạch cầu H sử dụng MOSFET kênh N (như IRF3205 + IR2104) để giảm sụt áp nội xuống $< 0.1\text{V}$, nâng cao hiệu suất lên $> 96%$.
- Cải tiến thuật toán: Nhúng thuật toán điều khiển số PID rời rạc (Discrete PID) để giữ vận tốc động cơ không đổi khi mô-men tải thay đổi đột ngột.
- Mở rộng kết nối: Tích hợp module truyền thông không dây ESP8266/ESP32 qua UART để giám sát và điều khiển tốc độ động cơ qua bảng điều khiển Web Dashboard / Smartphone IoT.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điện - Điện tử, Cơ điện tử, Tự động hóa: Tài liệu học tập thực hành trực quan về kiến trúc vi điều khiển 8051, lập trình cấu hình thanh ghi ngắt/Timer và kỹ thuật điều khiển động cơ.
- Kỹ sư phát triển hệ thống nhúng: Mẫu thiết kế tham chiếu (Reference Design) tin cậy cho các bài toán điều khiển công suất nhỏ với chi phí tối thiểu.
- Cơ sở đào tạo & Doanh nghiệp chế tạo máy: Bộ kit thực hành thí nghiệm vi xử lý đạt chuẩn hoặc khối điều khiển phụ trợ trong các máy tự động hóa chuyên dụng.
Câu hỏi thường gặp
1. Tại sao hệ thống sử dụng Timer 2 của AT89C52 để tạo PWM thay vì dùng Timer 0 hay Timer 1?
Vi điều khiển AT89C52 được trang bị Timer 2 với tính năng tự động nạp lại 16-bit (16-bit Auto-reload mode). Tính năng này cho phép bộ định thời tự động nạp lại giá trị từ thanh ghi RCAP2H/RCAP2L vào TH2/TL2 khi xảy ra tràn mà không cần sự can thiệp của lệnh phần mềm. Nhờ đó, chu kỳ ngắt $100\mu\text{s}$ luôn đạt độ chính xác tuyệt đối, không có sai số tích lũy chu kỳ máy như khi nạp lại bằng tay trên Timer 0/Timer 1.
2. Mạch cầu H L298 được bảo vệ chống dòng điện cảm ứng ngược từ cuộn dây động cơ như thế nào?
Khi ngắt đột ngột điện áp cấp cho động cơ DC, cuộn cảm động cơ sẽ sinh ra sức điện động cảm ứng ngược ($e = -L\frac{di}{dt}$) với điện áp rất lớn có thể đánh thủng bán dẫn của L298. Hệ thống được tích hợp cầu 4 cặp diode nhanh (Fast Recovery Diodes như 1N5819 hoặc FR107) mắc song song ngược với các cực ngõ ra để xả an toàn năng lượng phản kháng về nguồn và mass.
3. Làm thế nào để mở rộng dải công suất điều khiển động cơ lên 24V - 10A?
Để nâng công suất, vi điều khiển AT89C52 vẫn giữ nguyên vai trò điều khiển trung tâm. Phần mạch lực L298 sẽ được thay thế bằng module cầu H MOSFET rời hoặc IC chuyên dụng như IBT-2 (BTS7960) kết hợp mạch cách ly quang Optocoupler (PC817 hoặc 6N137) để cách ly hoàn toàn điện áp cao khỏi khối vi xử lý.
4. Cách thức xác định chiều quay của động cơ khi sử dụng Encoder 2 kênh (Kênh A và B)?
Hệ thống sử dụng cảm biến quang pha kép với hai mắt thu lệch nhau một góc điện học $90^\circ$. Khi động cơ quay, vi điều khiển sẽ kiểm tra mức logic của Kênh B tại thời điểm sườn lên của tín hiệu Kênh A:
- Nếu Kênh B ở mức logic thấp (0): Động cơ đang quay thuận.
- Nếu Kênh B ở mức logic cao (1): Động cơ đang quay ngược.
5. Tại sao cần mắc điện trở kéo lên (Pull-up Resistor 10k) ở Port 0 của vi điều khiển 8051?
Port 0 của dòng vi điều khiển 8051/AT89C52 có cấu trúc đầu ra cực máng hở (Open Drain), không có sẵn điện trở kéo nội bên trong chip. Khi cấu hình Port 0 làm ngõ ra điều khiển hiển thị LED 7 đoạn, bắt buộc phải gắn thêm thanh trở kéo ngoài (giá trị thông dụng $4.7\text{k}\ \Omega - 10\text{k}\ \Omega$) nối lên nguồn $V_{CC} = +5\text{V}$ để tạo mức logic 1 điện áp cao chuẩn TTL.
Kết luận
Đồ án "Đo và điều khiển tốc độ động cơ dùng vi điều khiển 8051" đã hiện thực hóa thành công một giải pháp tích hợp phần cứng - phần mềm hoàn chỉnh cho bài toán cơ điện tử cốt lõi. Bằng cách kết hợp linh hoạt kiến trúc ngắt thời gian thực, điều chế xung PWM phần cứng và kỹ thuật đo lường xung quang học thông minh, hệ thống đạt được độ chính xác điều khiển cao, độ bền công nghiệp và hiệu quả kinh tế tối ưu. Đây là nền tảng kỹ thuật vững chắc sẵn sàng cho các bước nâng cấp thuật toán điều khiển vòng kín thông minh và kết nối vạn vật trong tương lai.