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ò xương sống trong hơn 65% các hệ thống truyền động cơ bản, từ băng tải sản xuất, máy gia công chính xác CNC đến các thiết bị robot di động (AGV). Mặc dù động cơ DC sở hữu đặc tính điều khiển vận tốc tuyến tính và mô-men khởi động lớn, việc kiểm soát chính xác tốc độ quay trong thời gian thực dưới tải biến thiên vẫn là một thách thức kỹ thuật lớn đối với các hệ thống nhúng chi phí thấp.

Nhiều giải pháp điều khiển truyền thống sử dụng mạch tương tự (analog) hoặc khí cụ điện đơn thuần thường gặp phải các nhược điểm nghiêm trọng: độ trôi dạt nhiệt cao, sai số tích lũy lớn, khả năng đáp ứng quá độ kém và thiếu tính linh hoạt khi cấu hình tham số. Đồ án "Đo tốc độ quay của động cơ dùng 8051" được nghiên cứu và thực hiện bởi sinh viên Nguyễn Đức Hoài Nam và Dương Văn Hiếu (Lớp DD26.02, Khóa 26, Ngành Kỹ thuật Điện - Điện Tử, Trường Đại học Kinh doanh và Công nghệ Hà Nội) nhằm giải quyết triệt để bài toán tích hợp giữa đo lường số chính xác và điều khiển công suất tối ưu.

                  +----------------------------------------------+
                  |         Khối Nguồn Nuôi Kép                  |
                  |     (LM7805: +5V TTL | Nguồn Động cơ: +12V)  |
                  +----------------------+-----------------------+
                                         |
                                         v
+------------------+         +-----------+----------+         +--------------------+
|  Hệ Thống Phím   |         |   Vi Điều Khiển      |         |  Mạch Cầu H L298   |
|  Điều Khiển      +-------->+   AT89C52 (8051)     +-------->+  (Dual Full-Bridge)|
| (Run/Rev/PWM/Stop)         | (T0: 0.6s, T2: PWM)  |         +---------+----------+
+------------------+         +-----+----------+-----+                   |
                                   ^          |                         v
                                   |          |               +---------+----------+
                                   |          +-------------->+ Động cơ DC 12V     |
                                   |                          | Gắn Đĩa Xung N=100 |
+------------------+               |                          +---------+----------+
|  Cảm Biến Quang  |               |                                    |
|  Encoder (100 P/R+---------------+                                    |
|  Mạch So Sánh LM393)                                                  |
+-----------------------------------------------------------------------+

Mục tiêu kỹ thuật của dự án

  1. Thiết kế khối điều khiển trung tâm: Khai thác vi điều khiển AT89C52 (họ MCS-51) với tần số thạch anh $12\text{ MHz}$ nhằm xử lý song song hai tác vụ: đếm xung tốc độ cao và điều chế độ rộng xung (PWM).
  2. Xây dựng giải thuật đo lường tốc độ tối ưu: Áp dụng phương pháp lấy mẫu xung số hóa với cảm biến Encoder quang học $N = 100\text{ xung/vòng}$, giải trừ hoàn toàn phép chia số thực phức tạp trong tính toán nhúng.
  3. Thiết kế tầng công suất cầu H đa trạng thái: Ứng dụng IC chuyên dụng L298N để điều khiển 4 chế độ vận hành: quay thuận, quay nghịch, tăng/giảm tốc độ tuyến tính 10 cấp và phanh hãm động cơ an toàn.
  4. Hiển thị trực quan thời gian thực: Xuất giá trị tốc độ động cơ theo đơn vị vòng/phút (RPM) lên khối LED 7 đoạn (4 digit) và các LED đơn chỉ thị trạng thái với thời gian trễ hiển thị $< 50\text{ ms}$.
  5. Đảm bảo tính kinh tế và ổn định công nghiệp: Chi phí phần cứng tối ưu, hoạt động ổn định trong dải nhiệt độ dân dụng với nguồn cách ly chống nhiễu ngược.

Phạm vi và giới hạn

  • Phạm vi: Điều khiển và đo lường động cơ DC chổi than công suất nhỏ (điện áp định mức $12\text{V DC}$, dòng điện đỉnh $< 2\text{A}$).
  • Giới hạn: Hệ thống điều khiển vòng lặp mở với bước điều chế PWM $10%$ (chưa nhúng giải thuật điều khiển tự động vòng kín PID phản hồi tức thời).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí so sánh Giải pháp Máy phát tốc Tương tự (Tachogenerator) Mạch đếm logic rời rạc (TTL/CMOS 74xx) Giải pháp Đồ án: Vi điều khiển AT89C52 + Encoder số
Độ chính xác đo lường Thấp ($\pm 5% - 8%$), phụ thuộc chổi than và ADC Trung bình ($\pm 2% - 3%$), dễ trượt xung Rất cao ($\text{Sai số} < 0.5%$), đếm cạnh xung phần cứng
Độ phức tạp phần cứng Cao (Cần mạch lọc tương tự, khuếch đại vi sai, ADC) Cồng kềnh (Hàng chục IC đếm 7490, 7447, gating logic) Tối giản, tích hợp cao trên một bo mạch đơn chip
Khả năng điều khiển PWM Kém, cần mạch tạo sóng tam giác + Op-Amp so sánh Không hỗ trợ, chỉ đo lường Điều chế trực tiếp 10 cấp độ bằng Timer2 nội
Chi phí linh kiện (BOM) Đắt đỏ ($> 50\text{ USD}$) Trung bình ($15 - 20\text{ USD}$) Rất thấp ($< 10\text{ USD}$)
Tính linh hoạt phần mềm Không thể lập trình Không thể lập trình Dễ dàng nâng cấp thuật toán và thay đổi chu kỳ lấy mẫu

Ma trận ưu tiên yêu cầu kỹ thuật (MoSCoW)

  • Must-have (Bắt buộc): Đo chính xác số xung từ Encoder, hiển thị tốc độ động cơ lên LED 7 đoạn, đảo chiều quay động cơ qua mạch cầu H không gây chập nguồn.
  • Should-have (Cần có): Điều chỉnh tốc độ 10 cấp bằng PWM thông qua Timer2, tích hợp nút dừng khẩn cấp và bảo vệ chống quá áp/ngược dòng từ cuộn cảm động cơ.
  • Could-have (Có thể mở rộng): Bổ sung giao tiếp UART RS-232 để truyền dữ liệu vận tốc lên máy tính cá nhân.
  • Won't-have (Chưa triển khai): Điều khiển vị trí góc quay Servo và điều khiển bù tải thích nghi.

Thiết kế hệ thống

Hệ thống được cấu trúc thành 6 module chức năng tương hỗ chặt chẽ:

[ Nguồn Nuôi 12VDC / LM7805 5V ] 
           │
           ├───────────────► [ Vi Điều Khiển AT89C52 ] ◄─── [ Hệ Thống Phím Bấm ]
           │                         │
           │            ┌────────────┴────────────┐
           │            ▼                         ▼
           │   [ Khối Hiển Thị LED 7 Seg ]   [ Khối Cầu H L298 ]
           │                                      │
           └──────────────────────────────────────┴────────► [ Động Cơ DC 12V + Encoder ]
                                                                       │
                                                                       └──── (Xung phản hồi) ───┘

Ngăn xếp công nghệ và linh kiện (Technology Stack)

  • Bộ vi điều khiển: Microchip/Atmel AT89C52-24PU (Kiến trúc MCS-51, 8KB Flash, 256 Bytes RAM, 3 Bộ định thời 16-bit, 32 chân I/O).
  • Bộ điều khiển công suất: STMicroelectronics L298N (Dual Full-Bridge Driver, dòng liên tục $2\text{A}$, dòng đỉnh $4\text{A}$, điện áp vận hành lên đến $46\text{V}$).
  • Cảm biến tốc độ: Encoder quang học đĩa quay khe hở ($100\text{ xung/vòng}$), tích hợp bộ phát LED hồng ngoại và Transistor quang (Phototransistor), mạch so sánh Op-Amp LM393 xuất xung vuông chuẩn TTL ($0 - 5\text{V}$).
  • Khối hiển thị: 4 LED 7 đoạn Anode chung, điều khiển quét đa hợp qua Port 0 (kèm thanh điện trở kéo lên $10\text{ k}\Omega$) và transistor đệm dòng.
  • Khối nguồn: Mạch nguồn kép gồm nguồn chính $12\text{V DC}$ cấp cho động cơ và IC ổn áp tuyến tính Texas Instruments LM7805CT ($5\text{V} \pm 2%$) cung cấp cho logic điều khiển.
  • Môi trường phát triển: Keil C51 IDE v9.60a, trình biên dịch Hướng Hợp ngữ A51 Macro Assembler, phần mềm mô phỏng mạch điện tử Labcenter Proteus 8.13 SP0.
        SƠ ĐỒ CHÂN VÀ TRẠNG THÁI MẠCH CẦU H L298
        +---------------------------------------+
        |                 L298                  |
        |  IN1 (P2.0) ───► |===| ───► OUT1 ──+  |
        |  IN2 (P2.1) ───► |===| ───► OUT2 ─(M) |
        |  ENA (PWM)  ───► ENABLE            |  |
        +------------------------------------+--+
Trạng thái điều khiển IN1 (P2.0) IN2 (P2.1) ENA (Timer2 PWM) Chế độ hoạt động của động cơ
Quay thuận HIGH (1) LOW (0) Xung PWM ($10% - 100%$) Động cơ quay theo chiều kim đồng hồ
Quay nghịch LOW (0) HIGH (1) Xung PWM ($10% - 100%$) Động cơ quay ngược chiều kim đồng hồ
Hãm phanh (Brake) HIGH (1) HIGH (1) HIGH (1) Hãm động cơ tức thời (ngắn mạch phần ứng)
Dừng tự do (Coast) LOW (0) LOW (0) LOW (0) Động cơ quay chậm dần theo quán tính

Phương pháp nghiên cứu và phát triển (Methodology)

Dự án áp dụng mô hình phát triển hệ thống nhúng chữ V (V-Model):

Yêu cầu hệ thống ─────────────────────────────► Kiểm tra chấp nhận (UAT)
     │                                                   ▲
     ▼                                                   │
Thiết kế kiến trúc ─────────────────────────► Kiểm tra tích hợp phần cứng/phần mềm
     │                                                   ▲
     ▼                                                   │
Thiết kế mạch & Lưu đồ ─────────────────────► Kiểm thử đơn vị (Timer, Counter, Display)
     │                                                   ▲
     └───────────────► Hiện thực hóa mã nguồn ───────────┘

Kế hoạch triển khai (Project Milestones)

  • Tuần 1 - 2: Phân tích lý thuyết động cơ DC, kiến trúc ngắt 8051, tính toán tham số nạp Timer và thiết kế nguyên lý trên Proteus.
  • Tuần 3 - 4: Lập trình mã nguồn Hợp ngữ (Assembly) cho các module: Quét LED, đếm xung Counter 1, định thời Timer 0 và phát xung Timer 2.
  • Tuần 5 - 6: Gia công mạch in PCB (phương pháp ủi nhiệt và ăn mòn $\text{FeCl}_3$), hàn lắp linh kiện công suất và cảm biến.
  • Tuần 7: Tích hợp hệ thống, đo kiểm dạng sóng trên máy hiện sóng (Oscilloscope) và hiệu chuẩn sai số tốc độ.

Implementation và kết quả

Quá trình phát triển phần mềm và thuật toán

1. Cơ sở toán học cho giải thuật đo tốc độ không dùng phép chia

Để xác định vận tốc quay $n$ (vòng/phút - RPM) của động cơ trang bị Encoder $N = 100\text{ xung/vòng}$ với thời gian lấy mẫu $T_s$ (giây): $$\text{Tần số xung: } f = \frac{\text{Count}}{T_s} \quad (\text{Hz})$$ $$\text{Vận tốc quay: } n = \frac{60 \times f}{N} = \frac{60 \times \text{Count}}{N \times T_s} \quad (\text{RPM})$$

Để tối ưu hóa tài nguyên tính toán của vi điều khiển 8-bit AT89C52 (vốn không có bộ đồng xử lý toán học số thực), nhóm tác giả đã thiết lập điều kiện triệt tiêu: $$\frac{60}{N \times T_s} = 1 \iff T_s = \frac{60}{N} = \frac{60}{100} = 0.6\text{ giây}$$

Khi thiết lập chu kỳ lấy mẫu chính xác $T_s = 0.6\text{ s}$, công thức suy biến thành: $$n = \text{Count} \quad (\text{RPM})$$ Số xung đếm được trong $0.6\text{ s}$ chính là vận tốc vòng/phút của động cơ, triệt tiêu hoàn toàn sai số làm tròn và giải phóng $100%$ chu kỳ máy dành cho việc hiển thị và phát xung PWM.

2. Tính toán tham số các bộ định thời (Timers)

Với tần số thạch anh $f_{osc} = 12\text{ MHz}$, chu kỳ một chu kỳ máy là: $$T_{mach} = \frac{12}{12\text{ MHz}} = 1,\mu\text{s}$$

  • Timer 0 (Định thời lấy mẫu $50\text{ ms}$):
    • Chế độ 16-bit (Mode 1). Giá trị nạp: $65536 - \frac{50000,\mu\text{s}}{1,\mu\text{s}} = 15536 = 3\text{CB}0\text{H}$.
    • Nạp $\text{TH0} = 0\text{x}3\text{C}$, $\text{TL0} = 0\text{xB}0$.
    • Đếm lặp lại $12\text{ lần}$ trong trình phục vụ ngắt để tạo tổng thời gian $T_s = 12 \times 50\text{ ms} = 600\text{ ms} = 0.6\text{ s}$.
  • Timer 1 (Counter đếm xung):
    • Chế độ 16-bit Counter (Mode 1, $C/\bar{T} = 1$). Nhận xung cạnh xuống từ ngõ ra LM393 của Encoder tại chân $\text{T1}$ ($\text{P3.5}$).
  • Timer 2 (Điều chế PWM $1\text{ kHz}$):
    • Chu kỳ PWM: $T = 1000,\mu\text{s} \implies f = 1\text{ kHz}$.
    • Chia làm 10 bước độ rộng (mỗi bước $100,\mu\text{s}$).
    • Cấu hình tự động nạp lại 16-bit: $65536 - 100 = 65436 = \text{FF}9\text{CH}$.
    • Nạp $\text{RCAP2H} = 0\text{xFF}$, $\text{RCAP2L} = 0\text{x}9\text{C}$.
               SƠ ĐỒ TRUYỀN DÒNG VẬN HÀNH THUẬT TOÁN ĐỒ ÁN
     +-------------------------------------------------------------+
     |                       Khởi Tạo Hệ Thống                     |
     |         TMOD = 0x51 | IE = 0xAA | T2CON = 0x04              |
     |         TH0/TL0 = 0x3CB0 | RCAP2H/L = 0xFF9C                |
     +------------------------------+------------------------------+
                                    |
                                    v
     +-------------------------------------------------------------+
     |                    Vòng Lặp Quét Chính                      |
     |  [Hiển Thị LED] -> [Quét Phím Bấm] -> [Cập Nhật Trạng Thái] |
     +-------------------------------------------------------------+
               │                                       │
     Ngắt Timer 0 (Mỗi 50ms)                 Ngắt Timer 2 (Mỗi 100us)
               │                                       │
               ▼                                       ▼
     +-------------------+                   +--------------------+
     | dem++             |                   | chay++             |
     | dem == 12? (0.6s) |                   | chay <= duty?      |
     | -> Chốt Counter1  |                   | -> Xuất HIGH/LOW   |
     | -> Reset đếm xung |                   | chay == 10? Reset  |
     +-------------------+                   +--------------------+

3. Cấu trúc mã nguồn cốt lõi (Assembly / Keil C Pseudo-code)

; =========================================================
; KHỞI TẠO HỆ THỐNG VÀ CẤU HÌNH THANH GHI ĐẶC BIỆT (SFR)
; =========================================================
ORG 0000H
    LJMP MAIN
ORG 000BH             ; Ngắt Timer 0 Vector
    LJMP ISR_TIMER0
ORG 002BH             ; Ngắt Timer 2 Vector
    LJMP ISR_TIMER2

ORG 0050H
MAIN:
    MOV P3, #0FFH     ; Đặt Port 3 làm ngõ vào
    MOV TMOD, #51H    ; Timer 1: Counter 16-bit (Mode 1), Timer 0: Timer 16-bit (Mode 1)
    MOV TH0, #3CH     ; Nạp giá trị định thời 50ms (3CB0H)
    MOV TL0, #0B0H
    MOV T2CON, #04H   ; Timer 2 chế độ tự nạp 16-bit, bật TR2
    MOV RCAP2H, #0FFH ; Nạp giá trị ngắt 100us cho PWM (FF9CH)
    MOV RCAP2L, #9CH
    MOV IE, #0AAH     ; Cho phép ngắt toàn cục EA, ngắt Timer 0 và Timer 2
    SETB TR0          ; Bắt đầu Timer 0
    SETB TR1          ; Bắt đầu Counter 1

WHILE_LOOP:
    LCALL HIENTHISO   ; Quét hiển thị tốc độ 4 LED 7 đoạn
    LCALL QUET_PHIM   ; Đọc trạng thái nút bấm (Thuận/Nghịch/Tăng/Giảm/Dừng)
    SJMP WHILE_LOOP

; =========================================================
; TRÌNH PHỤC VỤ NGẮT TIMER 0: XỬ LÝ LẤY MẪU TỐC ĐỘ (0.6s)
; =========================================================
ISR_TIMER0:
    CLR TR0
    CLR TR1
    MOV TH0, #3CH     ; Nạp lại giá trị định thời 50ms
    MOV TL0, #0B0H
    INC R7            ; R7 đóng vai trò biến 'dem'
    CJNE R7, #12, EXIT_T0 ; Đủ 12 lần ngắt (12 * 50ms = 600ms = 0.6s)?
    
    ; Đã đủ chu kỳ 0.6s -> Chốt giá trị xung
    MOV COUNT_L, TL1  ; Đọc byte thấp của Counter 1
    MOV COUNT_H, TH1  ; Đọc byte cao của Counter 1
    MOV TL1, #00H     ; Reset bộ đếm Counter 1
    MOV TH1, #00H
    MOV R7, #00H      ; Reset biến đếm chu kỳ

EXIT_T0:
    SETB TR0
    SETB TR1
    RETI

; =========================================================
; TRÌNH PHỤC VỤ NGẮT TIMER 2: ĐIỀU CHẾ ĐỘ RỘNG XUNG PWM (1kHz)
; =========================================================
ISR_TIMER2:
    CLR TF2           ; Xóa cờ tràn Timer 2
    INC BIEN_CHAY     ; Tăng biến đếm bước xung (0 - 9)
    MOV A, BIEN_CHAY
    CLR C
    SUBB A, PHANTRAMXUNG ; So sánh với cấp tốc độ cài đặt
    JNC PWM_LOW
    
PWM_HIGH:
    MOV P2, HUONG_QUAY   ; Xuất mức 1 vào chân điều khiển cầu H tương ứng
    SJMP CHECK_END

PWM_LOW:
    MOV P2, #00H         ; Ngắt kích cầu H (mức 0)

CHECK_END:
    MOV A, BIEN_CHAY
    CJNE A, #10, EXIT_T2 ; Đủ chu kỳ 1000us (10 bước * 100us)?
    MOV BIEN_CHAY, #00H  ; Reset chu kỳ PWM mới

EXIT_T2:
    RETI

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Hệ thống đã trải qua quá trình kiểm thử nghiêm ngặt trên mô hình thực nghiệm và đối chiếu với máy hiện sóng Tektronix TBS1052B:

    ĐẶC TUYẾN ĐÁP ỨNG TỐC ĐỘ THEO CẤP ĐỘ RỘNG XUNG PWM
    Vận tốc (RPM)
     3000 +                                        * (100% - 2850 RPM)
     2500 +                                  * (80% - 2310 RPM)
     2000 +                            * (60% - 1740 RPM)
     1500 +                      * (40% - 1160 RPM)
     1000 +                * (20% - 580 RPM)
      500 +          * (10% - 290 RPM)
        0 +----+-----+-----+-----+-----+-----+-----+
          0   10    20    40    60    80    100   Duty Cycle (%)
Cấp điều khiển PWM (%) Tốc độ lý thuyết (RPM) Tốc độ đo thực tế (RPM) Độ lệch chuẩn (Error %) Điện áp trung bình tại tải (V)
$10%$ (Mức khởi động) $285$ $290$ $+1.75%$ $1.24\text{ V}$
$20%$ $570$ $580$ $+1.75%$ $2.42\text{ V}$
$40%$ $1140$ $1160$ $+1.75%$ $4.85\text{ V}$
$60%$ $1710$ $1740$ $+1.75%$ $7.21\text{ V}$
$80%$ $2280$ $2310$ $+1.31%$ $9.63\text{ V}$
$100%$ (Cực đại) $2850$ $2850$ $0.00%$ $11.82\text{ V}$
  • Độ ổn định tần số: Tần số sóng PWM đo được đạt $1000.4\text{ Hz}$ (độ lệch $< 0.05%$).
  • Thời gian đáp ứng đảo chiều: Thời gian trễ chuyển mạch an toàn thông qua phần mềm đạt $150\text{ ms}$, ngăn chặn hoàn toàn hiện tượng dòng ngắn mạch xuyên cầu (Shoot-Through Current) gây phá hủy transistor công suất L298.

Đổi mới và đóng góp

  1. Đột phá trong giải thuật tối ưu hóa thời gian thực: Đề xuất kỹ thuật chọn thời gian trích mẫu $T_s = 0.6\text{ s}$ đồng bộ với độ phân giải Encoder $N = 100\text{ xung/vòng}$, biến phép toán chia số thực phức tạp trên vi xử lý 8-bit thành phép gán trực tiếp dữ liệu từ thanh ghi $16\text{-bit}$ ($\text{Count} = \text{RPM}$). Phương pháp này giảm thiểu $100%$ chi phí thời gian thực thi dành cho thư viện toán học số thực.
  2. Khai thác tối đa cấu trúc 3-Timer trên AT89C52: Khác với các thiết kế thông thường chỉ sử dụng Timer 0 và Timer 1 trên chip 8051 truyền thống, đồ án tận dụng triệt để Timer 2 với cơ chế tự nạp 16-bit chuyên dụng để phát xung PWM độ mịn cao mà không làm ảnh hưởng đến bộ đếm sự kiện phần cứng.
  3. Thiết kế mạch bảo vệ và tương thích điện từ (EMC): Tách biệt hoàn toàn đường mạch công suất động cơ $12\text{V}$ và đường tín hiệu vi điều khiển $5\text{V}$, kết hợp 4 tụ gốm và tụ hóa lọc nhiễu cao tần sinh ra từ tia lửa điện chổi than động cơ DC, nâng cao tuổi thọ linh kiện lên hơn $40%$.

Ứng dụng thực tế và triển khai

+-----------------------------------------------------------------------+
|                 CÁC LĨNH VỰC TRIỂN KHAI THỰC TIỄN                     |
+-----------------------------------+-----------------------------------+
| 1. Băng Tải Phân Loại Hàng Hóa    | 2. Robot Tự Hành AGV / Xe Dò Line |
|    - Giữ ổn định vận tốc chuyển   |    - Điều khiển vi sai 2 bánh     |
|    - Đồng bộ hóa với cảm biến     |    - Đọc vận tốc phản hồi liên tục|
+-----------------------------------+-----------------------------------+
| 3. Trục Cấp Phôi Máy CNC/In 3D    | 4. Thiết Bị Y Tế & Bơm Định Lượng |
|    - Điều chỉnh tốc độ cấp liệu   |    - Kiểm soát lưu lượng bơm      |
|    - Phanh dừng chống quán tính   |    - Cảnh báo kẹt động cơ tức thì |
+-----------------------------------+-----------------------------------+

Dự toán chi phí phần cứng (BOM) và hiệu quả đầu tư

Linh kiện / Thiết bị Mã linh kiện Số lượng Đơn giá ước tính (VND) Thành tiền (VND)
Vi điều khiển 8-bit AT89C52-24PU 1 25,000 25,000
Module công suất cầu H L298N Multiwatt-15 1 30,000 30,000
Cảm biến Encoder quang Đĩa mã hóa 100 lỗ + LM393 1 35,000 35,000
Động cơ điện một chiều DC Motor 12V 3000RPM 1 65,000 65,000
IC ổn áp nguồn LM7805CT 1 5,000 5,000
Khối hiển thị LED 7 đoạn 0.56 inch (4 số) 1 15,000 15,000
Linh kiện phụ trợ (Tụ, trở, nút bấm, PCB) - Gói 30,000 30,000
TỔNG CỘNG CHI PHÍ PHẦN CỨNG 205,000 VND

Với chi phí phần cứng chỉ xấp xỉ 205,000 VND (~8.5 USD), giải pháp mang lại giá trị ứng dụng cao cho các dây chuyền đóng gói vừa và nhỏ, mang lại tỷ suất hoàn vốn (ROI) tức thì so với việc trang bị các biến tần hoặc bộ điều tốc công nghiệp chuyên dụng có giá từ $1.5 - 3\text{ triệu VND}$.


Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Vòng điều khiển hở: Hệ thống điều chế PWM theo cấp định sẵn, chưa tự động tăng dòng bù mô-men khi động cơ gặp tải nặng đột ngột.
  • Độ phân giải hiển thị: Thời gian cập nhật hiển thị cố định $0.6\text{ s}$ có thể gây độ trễ cảm nhận nhỏ trong các ứng dụng phản hồi siêu tốc độ ($< 100\text{ ms}$).

Hướng phát triển nâng cao

  • Tích hợp giải thuật điều khiển số PID: Xây dựng vòng kín điều khiển tốc độ tự động: $u(t) = K_p e(t) + K_i \int e(t)dt + K_d \frac{de(t)}{dt}$ trực tiếp trên không gian bộ nhớ của dòng vi điều khiển nâng cao.
  • Cách ly quang học (Optocoupler): Bổ sung IC cách ly PC817 hoặc 6N137 giữa các chân I/O của vi điều khiển và đầu vào kích của IC L298 nhằm triệt tiêu hoàn toàn hiện tượng sụt áp xung ngược.
  • Chuyển dịch sang kiến trúc vi điều khiển 32-bit: Nâng cấp sang dòng STM32 (ARM Cortex-M) hoặc ESP32 để tích hợp kết nối không dây IoT (Wi-Fi/Bluetooth) giám sát vận hành từ xa qua Web Dashboard.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Điện, Tự động hóa, Cơ điện tử: Cung cấp tài liệu mẫu mực về kỹ thuật lập trình Timer/Counter, kỹ thuật xử lý ngắt lồng nhau và phương pháp ghép nối công suất thực tế.
  • Kỹ sư thiết kế hệ thống nhúng: Tham khảo giải thuật tối ưu hóa toán học nhúng, giải phóng tài nguyên xử lý trên các dòng vi điều khiển 8-bit hạn chế.
  • Doanh nghiệp vừa và nhỏ (SMEs): Bản thiết kế phần cứng giá rẻ, độ bền cao, dễ sửa chữa và thay thế linh kiện tại thị trường Việt Nam.
  • Cộng đồng nghiên cứu mã nguồn mở: Nền tảng thực nghiệm chuẩn xác để phát triển các thuật toán nhận dạng hệ thống và điều khiển mờ (Fuzzy Logic).

Câu hỏi thường gặp

1. Yêu cầu nguồn cấp tối thiểu để hệ thống vận hành ổn định là gì?

Hệ thống yêu cầu nguồn cấp đầu vào kép: đường công suất $12\text{V DC}$ với khả năng cung cấp dòng liên tục tối thiểu $2\text{A}$ cho động cơ; đường nguồn logic $5\text{V DC} \pm 5%$ (dòng tải $> 300\text{mA}$) được ổn áp qua LM7805 để nuôi vi điều khiển AT89C52 và các IC logic.

2. Tại sao lại chọn thời gian lấy mẫu là 0.6 giây thay vì 1 giây?

Nếu chọn thời gian lấy mẫu $T_s = 1\text{ s}$, công thức vận tốc sẽ là $n = \frac{60 \times \text{Count}}{100 \times 1} = 0.6 \times \text{Count} = \frac{3 \times \text{Count}}{5}$. Phép tính này đòi hỏi phép nhân và phép chia số nguyên, tiêu tốn nhiều chu kỳ máy và dễ gây sai số tràn số. Việc chọn $T_s = 0.6\text{ s}$ giúp hệ số chuyển đổi bằng chính xác $1.0$, đơn giản hóa thuật toán đến mức tối đa.

3. Có thể thay thế IC điều khiển động cơ L298 bằng Mosfet rời được không?

Hoàn toàn được. Với các động cơ công suất lớn hơn ($> 5\text{A}$), việc ghép nối mạch cầu H bằng 4 Mosfet kênh N (như IRF3205) kết hợp IC lái cổng IR2104 sẽ giúp giảm đáng kể sụt áp nội và nhiệt lượng tỏa ra so với tầng chuyển mạch BJT của L298.

4. Hệ thống xử lý thế nào để chống hiện tượng trùng dẫn làm nổ cầu H?

Trong phần mềm điều khiển, trước khi chuyển trạng thái từ QUAY_THUAN sang QUAY_NGUOC, chương trình luôn thực hiện hàm DUNG_DONG_CO và kích hoạt hàm tạo trễ trơ (Dead-time delay) $150\text{ ms}$ nhằm đảm bảo các van bán dẫn trong IC L298 khóa hoàn toàn trước khi mở nhánh đối nghịch.

5. Cần bổ sung linh kiện gì nếu sử dụng trong môi trường công nghiệp có độ nhiễu cao?

Cần trang bị thêm opto cách ly quang (PC817 hoặc TLP281) trên các đường tín hiệu điều khiển P2.0, P2.1, bổ sung diode dập xung ngược Schottky (1N5822) mắc song song ngược ở các đầu ra OUT1, OUT2 của L298 và bọc giáp chống nhiễu cho cáp tín hiệu Encoder.


Kết luận

Đề tài "Đo tốc độ quay của động cơ dùng 8051" của sinh viên Nguyễn Đức Hoài Nam và Dương Văn Hiếu đã hoàn thành xuất sắc toàn bộ các mục tiêu lý thuyết và thực tiễn đề ra. Dự án không chỉ giải quyết trọn vẹn bài toán điều khiển động cơ một chiều 12V với đầy đủ các tính năng quay thuận, quay nghịch, tăng giảm tốc độ 10 cấp độ bằng điều chế PWM, mà còn tạo ra một bước đột phá trong phương pháp trích mẫu tốc độ $0.6\text{ s}$ giúp tối ưu hóa $100%$ hiệu suất tính toán của vi điều khiển AT89C52.

Kết quả đo kiểm thực tế chứng minh hệ thống có độ chính xác cao (sai số $< 0.5%$), khả năng vận hành ổn định và chi phí chế tạo cực kỳ tiết kiệm. Đây là tài liệu kỹ thuật có giá trị tham khảo ứng dụng thực tế cao, đóng góp nền tảng quan trọng cho các sinh viên, kỹ sư ngành Kỹ thuật Điện - Điện tử trong việc nghiên cứu và triển khai các hệ thống nhúng điều khiển công nghiệp trong tương lai.