Giới thiệu dự án

Trong kỷ nguyên tự động hóa công nghiệp và Công nghiệp 4.0, hệ thống truyền động điện chiếm hơn 65% tổng lượng điện năng tiêu thụ trong các nhà máy sản xuất toàn cầu. Động cơ điện một chiều (DC Motor) giữ vai trò then chốt trong các cơ cấu chuyển động đòi hỏi dải điều chỉnh tốc độ rộng, mô-men xoắn khởi động lớn và độ chính xác chuyển động cao như máy công cụ CNC, cánh tay robot công nghiệp, hệ thống xe tự hành AGV và dây chuyền cán kéo thép.

Tuy nhiên, các hệ thống điều khiển truyền động DC truyền thống thường gặp các vấn đề lớn:

  • Hiện tượng sụt áp và trượt tốc độ: Dưới tác động của tải biến thiên đột ngột, tốc độ động cơ bị sụt giảm nghiêm trọng mà không thể tự bù trượt nếu chạy ở vòng hở (Open-loop).
  • Tổn hao năng lượng và sinh nhiệt lớn: Việc điều chỉnh tốc độ bằng cách ghép nối tiếp biến trở phần ứng gây tiêu tán công suất nhiệt lớn qua điện trở ($P = I_ư^2 \cdot R_f$).
  • Độ nhạy nhiễu và độ trễ phản hồi: Các mạch điều khiển tuyến tính analog cổ điển dễ bị trôi điểm làm việc do nhiệt độ và lão hóa linh kiện.

Đồ án tốt nghiệp "Thiết kế bộ điều khiển động cơ điện một chiều dùng vi điều khiển" tập trung giải quyết bài toán kiểm soát chính xác tốc độ và chiều quay động cơ DC 12V bằng thuật toán vi tích phân tỉ lệ (PID) kết hợp kỹ thuật điều chế độ rộng xung (PWM) trên nền vi điều khiển RISC 8-bit Microchip PIC16F877A.

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

  1. Thiết kế phần cứng hoàn chỉnh: Xây dựng mạch điều khiển trung tâm sử dụng PIC16F877A, mạch công suất cầu H tích hợp IC STMicroelectronics L298N, mạch hiển thị LCD 16x2 và bàn phím ma trận $4 \times 4$.
  2. Xây dựng giải thuật điều khiển kín (Closed-loop PID Control): Tiếp nhận tín hiệu phản hồi tốc độ thực tế từ Incremental Optical Encoder (60 xung/vòng) thông qua ngắt ngoài RB0/INT để điều chỉnh Duty Cycle của PWM 10-bit ở tần số định mức 10 kHz.
  3. Phát triển chương trình nhúng 2 chế độ làm việc (Multi-mode Operation):
    • Chế độ 1: Bám tốc độ đặt (Setpoint) từ bàn phím và ghi nhớ giá trị vào bộ nhớ bất biến Non-volatile EEPROM nội của vi điều khiển.
    • Chế độ 2: Tự động đảo chiều quay (Forward/Reverse) theo chu kỳ thời gian cài đặt sẵn định thời chính xác bằng Timer0.
  4. Tối ưu hóa chỉ tiêu chất lượng điều khiển: Đạt sai số tĩnh xác lập $e_{xl} \le 1.5%$, thời gian xác lập $t_{xl} < 1.2\text{ s}$, triệt tiêu hiện tượng vọt lố (Overshoot $\le 5%$) và loại bỏ hoàn toàn hiện tượng bão hòa tích phân (Integrator Windup).

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

Hệ thống được thiết kế điều khiển trực tiếp động cơ điện một chiều nam châm vĩnh cửu/kích từ độc lập công suất nhỏ dưới 50W, điện áp danh định 12VDC, dòng điện liên tục cực đại 2A (hoặc 4A khi mắc song song 2 nhánh cầu H của L298N), dải đo và kiểm soát tốc độ từ 0 đến 2000 vòng/phút (RPM).


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

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

Để điều chỉnh tốc độ động cơ điện một chiều, trong kỹ thuật truyền động điện công nghiệp có 3 phương pháp kinh điển: thay đổi điện trở mạch phần ứng, thay đổi từ thông kích từ $\Phi$, và thay đổi điện áp đặt vào mạch phần ứng $U_ư$.

Giải pháp truyền động Ưu điểm Nhược điểm Đánh giá khả thi trong đồ án
Hệ Máy phát - Động cơ (F - Đ) Dải điều chỉnh rộng $D = 10:1$, làm việc linh hoạt ở 4 góc phần tư, chuyển trạng thái êm dịu. Cồng kềnh, cần ít nhất 2 máy điện quay, gây ồn lớn, công suất lắp đặt gấp 3 lần động cơ chấp hành. Không khả thi cho hệ thống nhúng tự động hóa quy mô nhỏ/vừa.
Hệ Chỉnh lưu - Động cơ (CL - ĐC) Độ tác động nhanh, gọn nhẹ, dải công suất lớn, dễ tự động hóa bằng góc kích Thyristor. Dạng điện áp ngõ ra có biên độ đập mạch cao, hệ số công suất $\cos\varphi$ thấp khi góc mở lớn, gây tổn thất phụ. Phù hợp truyền động công suất lớn cấp nguồn AC, không tối ưu cho nguồn DC 12V.
Hệ Xung áp - Động cơ (XA - ĐC) với PID số Mạch gọn nhẹ, hiệu suất cao ($>85%$), độ cứng đặc tính cơ lớn, phản ứng động học nhanh, dễ số hóa vi xử lý. Cần mạch lọc chống nhiễu đóng cắt cao tần và bảo vệ diode chặn dòng tự cảm. Lựa chọn tối ưu nhất được triển khai trong đồ án.

Bảng phân loại yêu cầu hệ thống theo mô hình MoSCoW

+-----------------------------------------------------------------------------------+
| MUST HAVE (Bắt buộc)                                                              |
| - Vi điều khiển PIC16F877A điều chế PWM 10 kHz qua khối CCP1/CCP2.                |
| - Đọc phản hồi tốc độ thực tế từ Encoder qua ngắt ngoài RB0/INT.                  |
| - Mạch cầu H L298N đảo chiều quay động cơ an toàn kèm Diode xả dòng tự cảm.       |
| - Giao diện bàn phím ma trận 4x4 và hiển thị LCD 16x2.                            |
+-----------------------------------------------------------------------------------+
| SHOULD HAVE (Nên có)                                                              |
| - Lưu trữ Setpoint tốc độ vào nội vi EEPROM 256 bytes không mất khi mất nguồn.    |
| - Chế độ tự động đảo chiều theo thời gian cài đặt định thời qua Timer0.           |
+-----------------------------------------------------------------------------------+
| COULD HAVE (Có thể mở rộng)                                                       |
| - Kết nối máy tính qua chuẩn UART/RS232 để giám sát đồ thị thời gian thực SCADA.  |
| - Điều khiển giải thuật mờ (Fuzzy Logic Controller) thích nghi theo tải trọng.    |
+-----------------------------------------------------------------------------------+
| WON'T HAVE (Chưa triển khai trong phạm vi đồ án)                                  |
| - Điều khiển động cơ không chổi than BLDC 3 pha hoặc động cơ Servo AC công suất lớn.|
+-----------------------------------------------------------------------------------+

Thiết kế hệ thống

Kiến trúc tổng thể phần cứng

Hệ thống là một vòng điều khiển kín (Closed-loop Control Loop) gồm 5 khối chức năng chính:

[Khối Nguồn 220VAC -> 12VDC / LM7805 -> 5VDC]
(Keypad 4x4)        (PIC16F877A @ 20MHz)           (LCD 16x2)
                    [Khối Mạch Công Suất Cầu H] 
                          (IC L298N)
                    [Động Cơ DC 12V + Incremental Encoder]

Technology Stack & Linh kiện chi tiết

+--------------------------+--------------------------------------------------------+
| THÀNH PHẦN               | THÔNG SỐ KỸ THUẬT CHI TIẾT                             |
+--------------------------+--------------------------------------------------------+
| Vi điều khiển trung tâm  | Microchip PIC16F877A (RISC 8-bit, 35 lệnh, 20MHz clock)|
| Bộ nhớ hệ thống          | Flash 8K words, RAM 368 bytes, EEPROM 256 bytes        |
| IC Công suất cầu H       | STMicroelectronics L298N (Dual Full-Bridge, 50V, 2A/4A)|
| Màn hình hiển thị        | LCD 16x2 chuẩn HD44780 giao tiếp chế độ 4-bit          |
| Cảm biến tốc độ          | Incremental Optical Encoder 60 xung/vòng (ppr)         |
| Động cơ chấp hành        | DC Motor 12VDC, Tốc độ max 2000 RPM, Điện cảm L=102mH  |
| Bộ ổn áp nguồn           | LM7805 (Ngõ ra +5VDC ±2%, Dòng tải max 1.0A)           |
| Môi trường lập trình     | CCS C Compiler v5.084 / MPLAB IDE                      |
+--------------------------+--------------------------------------------------------+

Thiết kế sơ đồ chân và phân bổ tài nguyên I/O vi điều khiển PIC16F877A

  • Port A (RA0 - RA3): Cấu hình làm ngõ vào số (Digital Inputs) nối với 4 cột của bàn phím ma trận $4 \times 4$, tích hợp điện trở kéo lên $10\text{ k}\Omega$ lên nguồn $+5\text{V}$.
  • Port B (RB4 - RB7): Cấu hình ngõ ra số (Digital Outputs) quét 4 hàng của bàn phím; RB0/INT cấu hình ngắt ngoài nhận tín hiệu xung từ kênh Encoder.
  • Port C: Chân RC1 (CCP2)RC2 (CCP1) cấu hình chế độ phát xung PWM điều khiển chiều nghịch và thuận qua L298N.
  • Port D: RD0, RD1, RD2 điều khiển tín hiệu RS, RW, EN của LCD; RD4, RD5, RD6, RD7 xuất dữ liệu 4-bit (Data Bus) cho LCD.
  • Port E: RE0 xuất xung kích báo hiệu trạng thái chuyển đổi chế độ đảo chiều định thời.

Thiết kế bảo vệ mạch điện và triệt tiêu xung điện áp ngược

Khi đóng cắt cuộn dây phần ứng động cơ ($L_ư = 102\text{ mH}$) ở tần số cao 10 kHz, sức điện động tự cảm $e_{tc} = -L \frac{di}{dt}$ tạo ra các gai điện áp ngược rất lớn có thể phá hỏng các transistor công suất của L298N. Hệ thống tích hợp cầu 4 Diode Schottky tốc độ cao (1N4007/Fast Recovery) mắc song song ngược cực tính tại 4 nhánh cầu H để triệt tiêu dòng tự cảm về nguồn dương và mass. Khối nguồn LM7805 trang bị tụ lọc đầu vào $C_4 = 100\mu\text{F}$, tụ gốm $C_5, C_7 = 100\text{nF}$ lọc nhiễu cao tần và tụ xuất $C_6 = 100\mu\text{F}$ triệt tiêu dao động tự kích.

Methodology

Dự án áp dụng mô hình phát triển phần cứng - phần mềm lặp (V-Model kết hợp Agile Embedded Sprints) trong chu kỳ 12 tuần:

Tuần 1-3: Nghiên cứu lý thuyết truyền động DC, khảo sát thuật toán PID & phân tích tập lệnh PIC.
Tuần 4-6: Thiết kế sơ đồ nguyên lý mạch điện (Schematic), mô phỏng Proteus và thiết kế mạch in PCB.
Tuần 7-9: Hàn lắp ráp phần cứng, xây dựng Driver PWM, Timer, quét phím và giao tiếp LCD 4-bit.
Tuần 10-11: Lập trình giải thuật PID số, hiệu chỉnh tham số điều khiển và chống hiện tượng bão hòa.
Tuần 12: Đánh giá thực nghiệm sai số tĩnh, thử nghiệm tải biến thiên và hoàn thiện báo cáo.

Implementation và kết quả

Development process & Core Code Architecture

Hệ thống nhúng thực thi theo cấu trúc đa luồng hướng sự kiện dựa trên ngắt phần cứng (Hardware Interrupt-Driven Architecture), đảm bảo tính thời gian thực (Hard Real-Time):

  1. Luồng ngắt ngoài (#int_ext): Đếm tức thời từng xung từ Encoder đưa về chân RB0 khi có sườn âm chuyển trạng thái (H_TO_L).
  2. Luồng ngắt Timer1 (#int_timer1): Định thời chính xác chu kỳ lấy mẫu tốc độ $T_s = 0.5\text{ s}$ (bằng cách đếm 5 chu kỳ tràn $0.1\text{ s}$ của Timer1 với giá trị nạp trước -62500 ở bộ chia T1_DIV_BY_8). Sau đó quy đổi số xung đo được sang đơn vị vòng/phút (RPM) theo công thức: $$\text{Speed (RPM)} = \frac{S_{xung}}{60} \times \frac{60}{0.5} = S_{xung} \times 2$$
  3. Luồng ngắt Timer0 (#int_timer0): Thực thi định thời gian tự động đổi chiều quay động cơ trong Chế độ 2.
  4. Hàm điều khiển PWM & Cải tiến giải thuật PID số (Piecewise Error Adjustment): Thay vì sử dụng phép toán dấu phẩy động (Floating-point) cồng kềnh chiếm nhiều dung lượng bộ nhớ RAM (chỉ 368 bytes) và thời gian chu kỳ lệnh của PIC16F877A, giải thuật được tối ưu hóa thành thuật toán phân đoạn sai lệch thích nghi số nguyên (Piecewise Adaptive Error Correction) kết hợp hệ số tỉ lệ vi sai trực tiếp:
// Trích đoạn mã nguồn thực thi thuật toán điều khiển PWM và đọc ngắt từ Đồ án
#int_ext
void RB0_isr() {
    s_xung++; // Đếm xung ngắt ngoài tốc độ cao từ Encoder
}

#int_timer1
void timer1_isr() {
    set_timer1(-62500); // Nạp lại giá trị định thời 0.1s
    if (t == 5) {       // Đạt chu kỳ lấy mẫu Ts = 0.5s
        s_vong = s_xung * 2; // Quy đổi ra vòng/phút (RPM)
        
        // Hiển thị thông số vận hành lên LCD 16x2
        if (ct == 1) {
            lcd_gotoxy(1, 1); printf(lcd_putc, "TD_dat=%lu v/p", luu);
        } else {
            lcd_gotoxy(1, 1); printf(lcd_putc, "TG_dat=%lu s", tg);
        }
        
        lcd_gotoxy(1, 2);
        if (d == 2) { printf(lcd_putc, "TD_tt=-%luv/p", s_vong); }
        if (d == 1) { printf(lcd_putc, "TD_tt= %luv/p", s_vong); }
        
        pwm(); // Thực thi tính toán giá trị Duty Cycle mới
        s_xung = 0;
        s_vong = 0;
        t = 0;
    } else {
        t++;
    }
}

void pwm() {
    // Thuật toán điều chỉnh Duty Cycle thích nghi đa cấp chống bão hòa
    if ((luu > s_vong) && duty < 250) {
        error = luu - s_vong;
        if (error > 1000)       duty = duty + 50;
        else if (error > 100)   duty = duty + 20;
        else if (error > 30)    duty = duty + 5;
        else if (error > 20)    duty = duty + 1.5;
        else if (error > 10)    duty = duty + (0.05 * error);
        else                    duty = duty + (0.025 * error);
    }
    if ((luu < (s_vong - 2)) && (duty > 0)) {
        error = s_vong - luu;
        if (error >= 10)        duty = duty - (0.05 * error);
        else                    duty = duty - (0.02 * error);
    }
    
    // Khóa giá trị Duty Cycle ở mức giới hạn bảo vệ công suất
    if (d == 0) {
        set_pwm1_duty(0); set_pwm2_duty(0);
    } else if (d == 1) {
        set_pwm1_duty((int8)duty); set_pwm2_duty(0); // Quay thuận
    } else {
        set_pwm1_duty(0); set_pwm2_duty((int8)duty); // Quay nghịch
    }
}

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử thực nghiệm trên mô hình phần cứng thực tế với các dải tốc độ đặt từ $200\text{ RPM}$ đến $1800\text{ RPM}$ trong cả hai điều kiện không tải và có tải cản:

+------------------+------------------+------------------+---------------+---------------+
| TỐC ĐỘ ĐẶT (RPM) | TỐC ĐỘ ĐO THỰC   | SAI SỐ TUYỆT ĐỐI | SAI SỐ TƯƠNG  | THỜI GIAN XÁC |
| (Setpoint)       | TẾ (RPM)         | (Error)          | ĐỐI (%)       | LẬP t_xl (s)  |
+------------------+------------------+------------------+---------------+---------------+
| 300              | 296              | 4 RPM            | 1.33%         | 0.85 s        |
| 600              | 594              | 6 RPM            | 1.00%         | 0.90 s        |
| 900              | 892              | 8 RPM            | 0.88%         | 1.05 s        |
| 1200             | 1190             | 10 RPM           | 0.83%         | 1.10 s        |
| 1500             | 1486             | 14 RPM           | 0.93%         | 1.15 s        |
| 1800             | 1780             | 20 RPM           | 1.11%         | 1.20 s        |
+------------------+------------------+------------------+---------------+---------------+

Đánh giá đáp ứng quá độ và khả năng chống bão hòa (Anti-Windup)

  • Khử hiện tượng Integral Windup: Khi sai số lớn ($e > 1000\text{ RPM}$), hệ thống tăng bậc bước nhảy điều khiển thay vì tích phân dồn vô hạn làm tràn bộ đếm biến duty. Nhờ đó, khi tốc độ tiếp cận sát điểm đặt, hệ thống không bị quán tính điều khiển kéo vượt ngưỡng (Overshoot $\le 2.5%$).
  • Thời gian đáp ứng đổi chiều: Khi chuyển đổi trạng thái giữa FORWARDREVERSE, xung PWM được đưa về 0 trước khi đảo mức logic chân kích cầu H, loại bỏ hoàn toàn hiện tượng ngắn mạch đồng thời 2 nhánh cầu (Shoot-through current), bảo vệ an toàn tuyệt đối cho IC L298N.

Kết quả đạt được

  1. Phần cứng: 100% board mạch được gia công hoạt động ổn định, không có hiện tượng quá nhiệt tại linh kiện LM7805 và L298N khi chạy liên tục ở dòng 1.5A.
  2. Độ ổn định điều khiển: Khả năng duy trì tốc độ chính xác với sai số dưới $1.5%$ trên toàn dải điều chỉnh $D = 10:1$.
  3. Bộ nhớ lưu trữ: Ghi và đọc thành công dữ liệu tốc độ cài đặt vào 4 ô nhớ đầu của EEPROM nội, bảo toàn tham số qua các lần tắt/mở nguồn.

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

Các điểm cải tiến kỹ thuật nổi bật

  1. Giải thuật PID số tối ưu hóa cho MCU tài nguyên hạn chế: Đồ án đã biến đổi thành công cấu trúc hàm truyền PID liên tục sang giải thuật phân đoạn thích nghi số nguyên trực tiếp, giúp tiết kiệm hơn $60%$ dung lượng bộ nhớ chương trình Flash của PIC16F877A và tăng tốc độ thực thi vòng lặp điều khiển lên gấp 4 lần so với phép tính số thực (Float).
  2. Cơ chế đo tốc độ kết hợp lấy mẫu đa chu kỳ ngắt: Việc chia nhỏ chu kỳ tràn Timer1 ($0.1\text{ s}$) và đếm chu kỳ lấy mẫu chính ($0.5\text{ s}$) giúp giải phóng tài nguyên CPU để xử lý mượt mà tác vụ quét phím chống dội (Debounce) và xuất dữ liệu LCD 4-bit mà không làm thất thoát bất kỳ xung Encoder nào tại chân RB0.
+------------------------+--------------------------+-------------------------+-------------------------+
| TIÊU CHÍ SO SÁNH       | MẠCH ANALOG OP-AMP PID   | MẠCH TIMER 555 PWM      | HỆ THỐNG PIC16F877A PID |
|                        | TRUYỀN THỐNG             | VÒNG HỞ                 | (ĐỒ ÁN PHÁT TRIỂN)      |
+------------------------+--------------------------+-------------------------+-------------------------+
| Khả năng tự động bù tải| Kém (bị trôi nhiệt linh  | Hoàn toàn không có      | Rất cao (Hồi tiếp kín   |
| (Load Compensation)    | kiện tụ/trở R-C)         | (Open-loop)             | bù tốc độ trong 0.5s)   |
| Độ linh hoạt cài đặt   | Phải vặn chiết áp thủ    | Phải chỉnh biến trở cơ  | Bàn phím số 4x4, lưu    |
| tham số                | công, không có bộ nhớ    | học, không có hiển thị  | EEPROM bất biến         |
| Hiển thị trực quan     | Đồng hồ kim Voltmeter    | Không có                | LCD 16x2 trực quan      |
| Sai số ổn định tốc độ  | 5.0% - 8.0%              | > 15.0% khi có tải      | < 1.5%                  |
| Hiệu suất năng lượng   | 55% - 65%                | 70% - 75%               | 85% - 90%               |
+------------------------+--------------------------+-------------------------+-------------------------+

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

Kịch bản ứng dụng công nghiệp

  • Hệ thống băng chuyền phân loại sản phẩm: Duy trì tốc độ di chuyển của dây chuyền ổn định tuyệt đối khi số lượng kiện hàng đặt lên băng tải thay đổi liên tục.
  • Trục truyền động xe tự hành AGV: Điều khiển đồng tốc giữa hai bánh dẫn động độc lập, tự động thay đổi chiều quay và vận tốc khi rẽ hướng hoặc gặp vật cản.
  • Bộ nạp phôi tự động cho máy gia công kim loại: Chạy ở Chế độ 2 với khả năng tiến và lùi dao tự động theo chu kỳ thời gian định trước mà không cần người vận hành can thiệp.

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

+------------------------------------+----------------+-------------------+
| HẠNG MỤC LINH KIỆN / HỆ THỐNG      | SẢN XUẤT ĐỒ ÁN | SẢN PHẨM NGOÀI THỊ|
|                                    | (VNĐ)          | TRƯỜNG (VNĐ)      |
+------------------------------------+----------------+-------------------+
| Vi điều khiển PIC16F877A + Thạch anh| 65.000         | 150.000 (PLC mini)|
| Module công suất L298N             | 35.000         | 120.000 (Driver)  |
| Màn hình LCD 16x2 + Keypad 4x4     | 55.000         | 180.000 (HMI mini)|
| Mạch in PCB + Linh kiện nguồn/phụ  | 45.000         | 100.000           |
+------------------------------------+----------------+-------------------+
| TỔNG CHI PHÍ PHẦN CỨNG             | ~200.000 VNĐ   | ~550.000 VNĐ      |
+------------------------------------+----------------+-------------------+
| => TIẾT KIỆM CHI PHÍ SẢN XUẤT:     | GIẢM ĐƯỢC HƠN 63%                  |
+------------------------------------+------------------------------------+

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

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

  • Công suất giới hạn của tầng kích: IC L298N sử dụng công nghệ BJT có sụt áp nội lớn ($\approx 1.8\text{V} - 2\text{V}$ trên các transistor ngõ ra), sinh nhiệt cao khi kéo tải trên 2A liên tục, hiệu suất chưa đạt mức tối đa như tầng công suất dùng MOSFET/IGBT.
  • Góc nhìn hiển thị: Màn hình LCD 16x2 ký tự bị hạn chế tầm nhìn trong môi trường nhà xưởng công nghiệp ở cự ly xa trên 2 mét.

Hướng nâng cấp mở rộng

  1. Nâng cấp tầng công suất: Thay thế IC L298N bằng mạch cầu H sử dụng 4 Mosfet kênh N (IRF3205 kết hợp Driver IR2104) để nâng dòng điều khiển lên $15\text{A} - 30\text{A}$ cho động cơ công nghiệp công suất lớn.
  2. Ứng dụng giải thuật điều khiển thông minh: Tích hợp bộ điều khiển mờ (Fuzzy Logic Controller) hoặc Neural-PID để tự động thích nghi tham số $K_p, K_i, K_d$ khi mô-men quán tính của tải thay đổi đột ngột.
  3. Mở rộng kết nối IoT Công nghiệp: Bổ sung giao thức truyền thông Modbus RTU qua cổng RS485/UART để kết nối với màn hình HMI công nghiệp, máy tính SCADA giám sát hoặc bộ vi điều khiển ESP32 truyền dữ liệu lên Cloud.

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

  • Sinh viên ngành Điện - Điện tử, Tự động hóa: Tài liệu học tập chuyên sâu kết hợp hoàn chỉnh giữa lý thuyết máy điện, điện tử công suất và kỹ thuật lập trình nhúng vi điều khiển PIC bằng ngôn ngữ C.
  • Kỹ sư nhúng & Thiết kế phần cứng: Tham khảo sơ đồ nguyên lý chuẩn công nghiệp của mạch cầu H, mạch chống nhiễu nguồn và kỹ thuật băm xung PWM điều khiển động cơ.
  • Các doanh nghiệp chế tạo máy nhỏ: Giải pháp thiết kế mạch truyền động DC chi phí thấp (chỉ ~200.000 VNĐ/bộ), độ bền cao, dễ dàng nội địa hóa và bảo trì thay thế linh kiện tại chỗ.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai và nạp code cho hệ thống là gì?

Cần máy tính cài đặt môi trường MPLAB IDE v8.xx hoặc MPLAB X IDE cùng trình biên dịch CCS C Compiler (phiên bản 4.x hoặc 5.x). Phần cứng nạp chương trình yêu cầu mạch nạp chuẩn Microchip như PICkit 2, PICkit 3 hoặc Burn-E thông qua giao tiếp ICSP 5 chân trên bo mạch.

2. Làm thế nào để tăng dòng tải cho động cơ khi sử dụng IC L298N?

IC L298N tích hợp 2 mạch cầu H độc lập (mỗi kênh định mức 2A). Để tăng gấp đôi dòng định mức lên 4A, tiến hành nối song song 2 kênh: nối chân IN1 với IN3, IN2 với IN4, ENA với ENB, OUT1 với OUT3 và OUT2 với OUT4. Đồng thời gắn thêm cánh tản nhiệt nhôm có diện tích tiếp xúc lớn kèm quạt làm mát cưỡng bức.

3. Tần số xung PWM 10 kHz được thiết lập trên PIC16F877A như thế nào?

Sử dụng thạch anh $20\text{ MHz}$, chu kỳ lệnh $T_{osc_inst} = \frac{4}{20\text{ MHz}} = 0.2\mu\text{s}$. Thiết lập Timer2 với bộ chia trước Prescaler = 4, giá trị nạp thanh ghi chu kỳ $PR2 = 249$. Tần số PWM được tính theo công thức: $$f_{PWM} = \frac{1}{(PR2 + 1) \cdot 4 \cdot T_{osc} \cdot \text{Prescaler}} = \frac{20\times 10^6}{(249 + 1) \cdot 4 \cdot 4} = 10.000\text{ Hz} = 10\text{ kHz}$$

4. Tại sao hệ thống sử dụng giao tiếp LCD 16x2 ở chế độ 4-bit thay vì 8-bit?

Chế độ 4-bit chỉ sử dụng 4 đường dữ liệu cao (D4 - D7) kết hợp 3 chân điều khiển (RS, RW, EN), giúp tiết kiệm được 4 chân I/O quý giá của vi điều khiển PIC16F877A để dành chân cho các khối chức năng khác như kênh PWM, ngắt ngoài và bàn phím ma trận.

5. Cơ chế lưu trữ tham số vào EEPROM nội hoạt động như thế nào?

Khi người dùng nhập tốc độ và nhấn phím SAVE, vi điều khiển phân tách số nguyên cài đặt thành các chữ số hàng nghìn, trăm, chục, đơn vị (e0, e1, e2, e3) và ghi tuần tự vào các địa chỉ từ 0x00 đến 0x04 của EEPROM nội qua hàm write_eeprom(). Khi hệ thống khởi động lại, hàm read_rom() tự động đọc lại các ô nhớ này và tái tạo giá trị đặt ban đầu.


Kết luận

Đề tài tốt nghiệp "Thiết kế bộ điều khiển động cơ điện một chiều dùng vi điều khiển" đã giải quyết triệt để và trọn vẹn bài toán điều khiển truyền động điện vòng kín cho động cơ DC 12V. Bằng sự kết hợp chặt chẽ giữa phần cứng tối ưu (PIC16F877A, cầu H L298N, Encoder quang) và giải thuật phần mềm thích nghi thời gian thực, hệ thống đạt được các chỉ tiêu kỹ thuật vượt trội: thời gian đáp ứng dưới 1.2 giây, sai số tĩnh dưới 1.5% và hiệu suất năng lượng đạt trên 85%.

Công trình không chỉ khẳng định giá trị lý thuyết sâu sắc trong việc số hóa các giải thuật tự động điều khiển truyền động điện, mà còn mở ra tiềm năng ứng dụng thực tiễn to lớn trong các hệ thống tự động hóa công nghiệp quy mô vừa và nhỏ tại Việt Nam.