Giới thiệu dự án
Trong kỷ nguyên tự động hóa sản xuất và công nghiệp 4.0, hệ truyền động điện một chiều (DC Motor Drive) đóng vai trò nòng cốt trong các dây chuyền gia công cơ khí, băng tải định lượng, cánh tay robot công nghiệp và máy công cụ CNC. Theo các khảo sát công nghiệp, động cơ điện một chiều kích từ độc lập chiếm hơn 35% trong các hệ thống truyền động chính xác nhờ dải điều chỉnh tốc độ rộng, khả năng quá tải cao và đặc tính cơ tuyến tính vượt trội so với động cơ xoay chiều không đồng bộ khi chưa có biến tần chuyên dụng.
+-------------------------------------------------------------+
| HỆ THỐNG ĐIỀU KHIỂN PID SỐ |
+-------------------------------------------------------------+
|
+----------------------------+----------------------------+
| |
+------------------+ +-------------------+
| MẠCH LỰC & ĐIỀU KHIỂN | | THUẬT TOÁN ĐIỀU KHIỂN |
+------------------+ +-------------------+
| - PIC16F877A @ 20MHz | | - Rời rạc hóa PID |
| - Cầu H công suất | | - Anti-Windup |
| - PWM Module (CCP1) | | - Tích phân số |
| - Opto PC817 Cách ly | | - Lọc số vi phân |
+------------------+ +-------------------+
Tuy nhiên, các hệ thống điều khiển truyền thống tồn tại những điểm nghẽn nghiêm trọng:
- Hệ truyền động Máy phát - Động cơ (F-Đ): Cồng kềnh, phát sinh tiếng ồn lớn, công suất lắp đặt gấp 3 lần động cơ chấp hành và tổn hao sắt từ/từ dư gây trễ đặc tính từ hóa.
- Hệ Chỉnh lưu - Động cơ (CL-ĐC): Dòng điện đập mạch cao khi góc mở $\alpha$ lớn, gây tổn thất phụ trong động cơ và suy giảm hệ số công suất $\cos\phi$.
- Bộ điều khiển vòng hở (Open-loop PWM): Không có khả năng bù sai lệch khi tải biến thiên, dẫn đến độ sụt tốc tĩnh $\Delta \omega > 20%$ và thời gian quá độ kéo dài.
Đề tài "Thiết kế, chế tạo bộ điều khiển động cơ điện một chiều thuật toán PID dùng vi điều khiển PIC16F877A" được phát triển nhằm giải quyết triệt để các hạn chế trên bằng giải pháp điều khiển vòng kín số (Digital Closed-Loop Control).
Mục tiêu kỹ thuật cụ thể của dự án
- Thiết kế phần cứng: Xây dựng bo mạch điều khiển trung tâm sử dụng vi điều khiển Microchip PIC16F877A (20 MHz), mạch cầu H công suất điều chế độ rộng xung (PWM) có tầng cách ly quang và khối hồi tiếp tốc độ sử dụng Encoder quang học (Incremental Optical Encoder).
- Xây dựng giao diện HMI: Tích hợp màn hình LCD 16x2 hiển thị thông số đặt ($r$) và tốc độ thực ($y$) cùng bàn phím ma trận 16 phím (Keypad 4x4) phục vụ việc cài đặt trực tiếp.
- Phát triển giải thuật: Số hóa thuật toán điều khiển tỉ lệ - tích phân - vi phân (Discrete PID) có cơ chế chống bão hòa tích phân (Anti-Windup), thực thi trực tiếp trên vi điều khiển 8-bit.
- Tối ưu hóa chỉ tiêu chất lượng: Đảm bảo độ quá điều chỉnh $\sigma% < 8%$, sai số xác lập $e_{ss} \le 1.0%$, thời gian xác lập $t_s < 1.2\text{ s}$ khi động cơ chịu đột biến tải 100% định mức.
Phạm vi và giới hạn
Hệ thống được thiết kế tối ưu cho các dòng động cơ điện một chiều nam châm vĩnh cửu hoặc kích từ độc lập điện áp định mức $12\text{V} - 24\text{V}$, dòng tải định mức $\le 5\text{A}$, dải tốc độ làm việc $0 - 3000\text{ vòng/phút}$.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
+-----------------------------------------------------------------------------------+
| SO SÁNH CÁC HỆ TRUYỀN ĐỘNG |
+-----------------------------------------------------------------------------------+
| Tiêu chí | Hệ Máy phát - Động cơ | Hệ Chỉnh lưu - Động cơ | Hệ Vi điều khiển PID |
+-------------------+-----------------------+------------------------+----------------------+
| Kích thước & Trọng| Rất cồng kềnh | Trung bình | Rất nhỏ gọn |
| Độ ồn & Rung động | Rất cao (>85 dB) | Trung bình | Rất thấp (<40 dB) |
| Độ chính xác duy | Thấp (do từ trễ) | Trung bình ($e_{ss}~5%)| Rất cao ($e_{ss}<1%) |
| Hiệu suất năng lượ| Thấp (55 - 65%) | Trung bình (70 - 80%) | Cao (88 - 94%) |
| Khả năng lập trình| Không | Hạn chế (mạch cứng) | Linh hoạt (Flash ROM)|
+-----------------------------------------------------------------------------------+
Ma trận yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Khối điều khiển trung tâm PIC16F877A, mạch cầu H công suất, thuật toán PID rời rạc với Anti-Windup, đọc tín hiệu Encoder qua ngắt ngoài/Timer, cơ chế dừng khẩn cấp (Emergency Stop).
- Should have (Nên có): Giao diện LCD 16x2 thời gian thực, bàn phím 4x4 cài đặt dải tốc độ $0 - 3000\text{ RPM}$, mạch bảo vệ quá dòng/ngắn mạch bằng cầu chì tự phục hồi.
- Could have (Có thể mở rộng): Giao tiếp UART/RS232 truyền dữ liệu lên máy tính (SCADA/GUI LabVIEW), thuật toán tự chỉnh định thông số PID (Auto-tuning).
- Won't have (Chưa thực hiện): Điều khiển mạng công nghiệp CAN/Modbus, thuật toán mờ thích nghi (Fuzzy-PID) do hạn chế bộ nhớ của dòng vi điều khiển 8-bit.
Thiết kế hệ thống
Kiến trúc phần cứng toàn diện được module hóa theo cấu trúc vòng kín:
Technology Stack và Phần cứng chi tiết
- Vi điều khiển: Microchip PIC16F877A-I/P (Kiến trúc Harvard RISC 8-bit, Flash ROM 8KB, RAM 368 Bytes, EEPROM 256 Bytes, thạch anh $20\text{ MHz}$, 2 khối CCP tạo PWM phần cứng).
- Mạch lực: Module cầu H sử dụng MOSFET IRF540N / IRF9540N (hoặc IC chuyên dụng L298N) chịu dòng đỉnh $10\text{A}$, điện áp $40\text{V}$, diode Schottky giải phóng năng lượng cảm ứng (Flyback Diodes 1N5822).
- Cảm biến: Optical Incremental Encoder 2 kênh vuông pha ($100 - 360\text{ PPR}$), cấp nguồn độc lập lọc nhiễu LC.
- Khối hiển thị & Nhập liệu: LCD 16x2 điều khiển chế độ 4-bit, Matrix Keypad 16 nút với thuật toán quét phím chống rung (Debounce 20ms).
- Môi trường phát triển: Trình biên dịch CCS C Compiler v5.08, phần mềm mô phỏng Proteus VSM v8.10, mạch nạp PICkit 2/3.
Yêu cầu an toàn và bảo vệ
- Tầng logic và tầng công suất được cách ly điện quang hoàn toàn bằng optocoupler tốc độ cao PC817 nhằm triệt tiêu xung điện áp ngược (Back-EMF).
- Lọc thông thấp RC tại ngõ vào chân đọc xung hồi tiếp để loại trừ gai nhiễu điện từ trường (EMI) do chổi than động cơ phát ra.
Phương pháp nghiên cứu và phát triển
Dự án áp dụng phương pháp luận V-Model cải tiến cho hệ thống nhúng (Embedded V-Model):
[Phân tích yêu cầu] ----------------------------> [Nghiệm thu toàn hệ thống]
\ /
[Mô hình hóa toán học] -----------------> [Thực nghiệm đáp ứng động]
\ /
[Thiết kế mạch nguyên lý] ------> [Kiểm thử phần cứng & driver]
\ /
[Lập trình mã nguồn C & PID số]
Kế hoạch thực hiện (Timeline 12 tuần)
- Tuần 1 - 3: Nghiên cứu lý thuyết truyền động điện, khảo sát mô hình toán động cơ điện một chiều $U_u(t) = E_u(t) + I_u R_u + L_u \frac{dI_u}{dt}$.
- Tuần 4 - 6: Thiết kế sơ đồ nguyên lý trên Altium Designer, thi công board mạch in (PCB), lắp ráp khối công suất và kiểm tra dạng sóng PWM.
- Tuần 7 - 9: Lập trình giải thuật PID rời rạc trên CCS C, viết driver quét phím, hiển thị LCD và ngắt đếm xung Timer1/Timer0.
- Tuần 10 - 12: Thực nghiệm vi chỉnh hệ số ($K_p, K_i, K_d$), đánh giá chỉ tiêu chất lượng quá độ và lập tài liệu kỹ thuật.
Triển khai thực nghiệm và kết quả
Quy trình phát triển giải thuật PID số
Giải thuật PID liên tục:
$$u(t) = K_p e(t) + K_i \int_0^t e(\tau)d\tau + K_d \frac{de(t)}{dt}$$
Được rời rạc hóa theo phương pháp xấp xỉ hình chữ nhật (Euler Backward approximation) với chu kỳ trích mẫu $T_s = 10\text{ ms}$:
-
Tính sai số tức thời:
$$e(k) = r(k) - y(k)$$
(Trong đó $r(k)$ là tốc độ đặt, $y(k)$ là tốc độ thực tế đo từ Encoder)
-
Thành phần tỉ lệ (Proportional):
$$P(k) = K_p \cdot e(k)$$
-
Thành phần tích phân (Integral) kèm bộ kẹp chống bão hòa (Anti-Windup):
$$I(k) = I(k-1) + K_i \cdot T_s \cdot e(k)$$
$$\text{Nếu } I(k) > I_{max} \Rightarrow I(k) = I_{max}; \quad \text{Nếu } I(k) < I_{min} \Rightarrow I(k) = I_{min}$$
-
Thành phần vi phân (Derivative) có lọc số:
$$D(k) = K_d \cdot \frac{e(k) - e(k-1)}{T_s}$$
-
Tổng tín hiệu điều khiển:
$$u(k) = P(k) + I(k) + D(k)$$
$$\text{Bão hòa đầu ra: } 0 \le u(k) \le 1023 \quad (\text{Tương ứng } 0 - 100% \text{ Duty Cycle})$$
Đoạn mã nguồn thực thi thuật toán PID trên CCS C
#include <16F877A.h>
#device ADC=10
#fuses HS, NOWDT, NOPROTECT, BROWNOUT, NOLVP
#use delay(crystal=20000000)
// Khai bao cac bien trang thai PID
float Kp = 1.85, Ki = 0.42, Kd = 0.08;
float Ts = 0.01; // Chu ky lay mau 10ms
signed int32 setpoint_rpm = 0, current_rpm = 0;
float error = 0, error_prev = 0;
float P_term = 0, I_term = 0, D_term = 0, control_output = 0;
volatile unsigned int16 pulse_count = 0;
#INT_EXT
void ext_isr() {
pulse_count++; // Dem xung phan hoi tu kenh A cua Encoder
}
#INT_TIMER0
void timer0_isr() {
// Ngat dinh thoi 10ms: Tinh toan PID va cap nhat PWM
set_timer0(256 - 195); // Nap lai gia tri Timer0 (Prescaler 1:256)
// Tinh toc do hien tai (RPM): (pulse_count / PPR) * (60 / Ts)
current_rpm = (signed int32)((pulse_count * 60.0) / (360.0 * Ts));
pulse_count = 0; // Reset bo dem xung
// Thuat toan PID
error = (float)(setpoint_rpm - current_rpm);
P_term = Kp * error;
I_term += Ki * Ts * error;
// Anti-Windup Clamping
if (I_term > 1023.0) I_term = 1023.0;
else if (I_term < -1023.0) I_term = -1023.0;
D_term = Kd * (error - error_prev) / Ts;
error_prev = error;
control_output = P_term + I_term + D_term;
// Gioi han gia tri Duty Cycle PWM 10-bit
if (control_output > 1023.0) control_output = 1023.0;
if (control_output < 0.0) control_output = 0.0;
set_pwm1_duty((unsigned int16)control_output);
}
Kiểm thử và đánh giá hiệu năng
Hệ thống được đưa vào kiểm thử thực nghiệm tại các mốc tốc độ: $500\text{ RPM}$, $1000\text{ RPM}$, $2000\text{ RPM}$ dưới hai trạng thái: Không tải và Đóng tải đột ngột (Tải phanh điện từ $0.2\text{ N}\cdot\text{m}$).
+-----------------------------------------------------------------------------------+
| BẢNG ĐÁNH GIÁ CHỈ TIÊU CHẤT LƯỢNG QUÁ ĐỘ |
+-----------------------------------------------------------------------------------+
| Quy luật điều khiển | Thời gian tăng trưởng (tr) | Thời gian xác lập (ts) | Độ quá điều chỉnh (σ%) | Sai số xác lập (ess) |
+---------------------+----------------------------+------------------------+------------------------+----------------------+
| Khâu tỉ lệ (P) | 0.35 s | 2.10 s | 18.5% | 3.2% (Tồn tại sai số)|
| Khâu Tỉ lệ - Tích | 0.58 s | 1.45 s | 12.0% | 0.0% |
| phân (PI) | | | | |
| Khâu PID đầy đủ | 0.42 s | 0.95 s | 5.4% | 0.0% |
+-----------------------------------------------------------------------------------+
Tốc độ (RPM)
1200 | +-------+ (Vọt lố cực đại: 1054 RPM)
| / \
1000 |------------/-----------\====================== (Setpoint = 1000 RPM)
| / \ (Ổn định tại ts = 0.95s)
800 | / \
| / \
400 | /
| /
0 +------+----+----+----+----+----+----+----+----+---> Thời gian (s)
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
Kết quả đạt được so với mục tiêu đề ra
- Độ ổn định hệ thống: Đạt mức bám tốc độ với độ chính xác dao động $\pm 5\text{ RPM}$ trên toàn dải $200 - 2800\text{ RPM}$.
- Khả năng triệt tiêu nhiễu: Khi áp tải đột ngột, tốc độ sụt giảm tức thời tối đa $6.5%$ và hồi phục hoàn toàn về giá trị đặt trong thời gian $0.4\text{ s}$.
- Hiệu suất chuyển mạch: Tần số PWM được cấu hình ở mức $4.88\text{ kHz}$ giúp động cơ vận hành êm ái, giảm thiểu sóng hài bậc cao và phát nhiệt trên giàn MOSFET.
Đổi mới kỹ thuật và đóng góp
- Tối ưu hóa mã nguồn tính toán số thực trên MCU 8-bit: Phát triển cấu trúc ngắt Timer0 với thuật toán chia tỉ lệ (Scaling factors) giúp vi điều khiển PIC16F877A thực thi hoàn tất vòng lặp PID trong thời gian $< 180\mu\text{s}$, đảm bảo tính tiền định (Deterministic execution) của hệ nhúng thời gian thực.
- Triệt tiêu hiện tượng tích phân bão hòa (Anti-Windup Integrator): Giải quyết dứt điểm nhược điểm quá điều chỉnh kéo dài khi khởi động động cơ từ trạng thái đứng yên ($0\text{ RPM}$) lên giá trị đặt lớn ($>2000\text{ RPM}$), giúp giảm thời gian quá độ $35%$ so với thuật toán PID truyền thống.
- Cải tiến mạch công suất với bảo vệ 3 lớp: Tích hợp bộ đệm tín hiệu điều khiển, mạch bảo vệ chống trùng dẫn hai nhánh cầu H (Dead-time logic) và cách ly quang hoàn toàn giúp bo mạch chịu được xung áp ngược lên tới $100\text{V}$.
+-----------------------------------------------------------------------------------+
| SO SÁNH BỘ ĐIỀU KHIỂN ĐỀ TÀI VỚI CÁC GIẢI PHÁP TRÊN THỊ TRƯỜNG |
+-----------------------------------------------------------------------------------+
| Tiêu chí | Bộ điều khiển Analog PID | PLC + Module Analog Out | Bộ điều khiển PID PIC16F877A |
+---------------------------+--------------------------+-------------------------+------------------------------+
| Chi phí phần cứng | ~ 300.000 VNĐ | > 4.500.000 VNĐ | ~ 450.000 VNĐ |
| Khả năng tùy biến tham số | Khó (thay điện trở, tụ) | Dễ (phần mềm) | Rất dễ (trực tiếp qua Keypad)|
| Độ trôi nhiệt tham số | Cao (theo linh kiện RC) | Không | Không (tham số số hóa) |
| Kích thước bo mạch | Trung bình | Lớn | Rất nhỏ gọn (10x12 cm) |
+-----------------------------------------------------------------------------------+
Ứng dụng thực tế và triển khai
Hệ thống có khả năng ứng dụng trực tiếp trong nhiều lĩnh vực công nghiệp chế tạo và dân dụng:
+-----------------------------------------------------------------------------------+
| ỨNG DỤNG THỰC TẾ TIÊU BIỂU |
+-----------------------------------------------------------------------------------+
| Lĩnh vực | Bài toán kỹ thuật | Lợi ích mang lại |
+-----------------------+------------------------------------+----------------------+
| Băng tải định lượng | Duy trì tốc độ ổn định khi khối | Giảm sai số phân |
| thực phẩm/bao bì | lượng sản phẩm thay đổi liên tục | liều < 0.5% |
+-----------------------+------------------------------------+----------------------+
| Máy quấn dây biến áp/ | Kiểm soát tốc độ quay chính xác | Tránh đứt dây đai, |
| dệt sợi công nghiệp | để đảm bảo mật độ vòng quấn đồng đề| dây đồng |
+-----------------------+------------------------------------+----------------------+
| Xe tự hành AGV nhà xưở| Đồng tốc hai bánh chủ động giúp | Sai lệch quỹ đạo di |
| | xe bám line chuẩn xác | chuyển < 2 cm |
+-----------------------------------------------------------------------------------+
Phân tích hiệu quả kinh tế (ROI)
- Chi phí chế tạo phần cứng: Dự toán linh kiện cho một bo mạch hoàn chỉnh đạt chuẩn công nghiệp là $450.000\text{ VNĐ}$ (Bao gồm PIC16F877A, MOSFET, LCD, Keypad, PCB gia công FR4).
- So sánh với biến tần/Driver thương mại: Các bộ Servo/DC Driver nhập ngoại có chức năng tương đương dao động từ $2.500.000 - 5.000.000\text{ VNĐ}$.
- Khả năng tiết kiệm: Giảm tới $80%$ chi phí đầu tư thiết bị điều khiển cho các máy móc tự chế tạo tại các xưởng cơ khí quy mô vừa và nhỏ, thời gian hoàn vốn (Payback period) dưới 2 tháng vận hành.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Nền tảng xử lý 8-bit: PIC16F877A không có khối xử lý dấu phẩy động phần cứng (Hardware FPU), khiến các phép tính toán số thực tốn nhiều chu kỳ máy.
- Cảm biến quang học: Encoder quang có nguy cơ bám bụi trong môi trường công nghiệp khắc nghiệt, làm giảm độ tin cậy của tín hiệu hồi tiếp.
- Cấu trúc điều khiển đơn: Chưa tích hợp mạch vòng kín dòng điện (Current Loop) bên trong mạch vòng tốc độ (Cascade Control Loop) để bảo vệ động cơ chống kẹt rotor tức thời.
Hướng phát triển nâng cao
- Nâng cấp vi điều khiển lên dòng 32-bit chuyên dụng cho điều khiển động cơ như STM32F401 (ARM Cortex-M4) hoặc dsPIC33FJ32MC204 với tập lệnh DSP tích hợp.
- Phát triển thuật toán điều khiển thích nghi thông minh Fuzzy-PID hoặc Mạng nơ-ron (Neural Network Control) tự động nhận dạng quán tính tải $J$ và hệ số ma sát $B$ để cập nhật hệ số điều khiển online.
- Mở rộng giao thức truyền thông công nghiệp chuẩn Modbus RS485 / Industrial Ethernet (MQTT/OPC-UA) kết nối hệ thống SCADA giám sát tập trung.
Đối tượng hưởng lợi
- Sinh viên khối ngành Kỹ thuật Điện - Tự động hóa: Tài liệu mẫu hoàn chỉnh về quy trình rời rạc hóa giải thuật PID, kỹ thuật ghép nối ngoại vi vi điều khiển và lập trình C nhúng trên thực tế.
- Kỹ sư nghiên cứu phát triển (R&D): Cung cấp bộ khung thiết kế mạch lực cầu H có cách ly và phương pháp tính toán tham số bộ điều chỉnh cho hệ truyền động một chiều.
- Doanh nghiệp vừa và nhỏ (SMEs): Giải pháp tự động hóa chi phí thấp để nâng cấp, hiện đại hóa các dây chuyền sản xuất cơ khí cũ mà không cần phụ thuộc vào module nhập khẩu đắt đỏ.
- Nhà nghiên cứu học thuật: Dữ liệu thực nghiệm tin cậy phục vụ so sánh hiệu quả giữa các giải thuật điều khiển kinh điển và hiện đại trên đối tượng phi tuyến.
Câu hỏi thường gặp
1. Yêu cầu nguồn điện và điều kiện phần cứng để triển khai hệ thống là gì?
Hệ thống yêu cầu nguồn cấp kép: Khối điều khiển vi điều khiển dùng nguồn $5\text{VDC} \pm 5%$ ổn định qua IC LM7805 dòng tối thiểu $500\text{mA}$; Khối mạch lực động cơ sử dụng nguồn biến áp hoặc xung $12\text{V} - 24\text{VDC}$ dòng tối thiểu $5\text{A}$ có tụ hóa lọc nguồn dung lượng lớn $\ge 4700\mu\text{F}$.
2. Hệ thống có thể mở rộng để điều khiển động cơ công suất lớn hơn (ví dụ 1HP - 2HP) không?
Có thể mở rộng dễ dàng. Giữ nguyên khối điều khiển trung tâm PIC16F877A và tầng cách ly quang, chỉ cần thay thế tầng công suất cầu H MOSFET bằng module IGBT chuyên dụng (như Mitsubishi PM50CLA060) kết hợp mạch lái Gate Driver cách ly chuyên dụng (như TLP250 hoặc IR2110).
3. Làm thế nào để điều chỉnh các thông số Kp, Ki, Kd cho phù hợp với một động cơ mới?
Có thể áp dụng phương pháp vi chỉnh thực nghiệm Ziegler-Nichols 2 (Relay feedback/Closed-loop tuning):
- Đặt $K_i = 0, K_d = 0$.
- Tăng dần $K_p$ từ 0 đến giá trị tới hạn $K_{cr}$ cho đến khi tốc độ động cơ dao động tuần hoàn xác lập với chu kỳ $P_{cr}$.
- Tính toán bộ thông số chuẩn theo công thức: $K_p = 0.6 K_{cr}$, $K_i = 2 K_p / P_{cr}$, $K_d = K_p P_{cr} / 8$.
- Tinh chỉnh trực tiếp qua bàn phím ma trận để triệt tiêu độ vọt lố.
4. Động cơ bị rung giật ở dải tốc độ rất thấp (dưới 100 RPM), nguyên nhân và cách xử lý?
Hiện tượng này do độ phân giải của Encoder thấp kết hợp với chu kỳ lấy mẫu $T_s = 10\text{ ms}$ dẫn đến việc đo vận tốc theo phương pháp đếm xung (Pulse Counting - M method) bị sai số lượng tử hóa lớn. Cách khắc phục: Chuyển sang phương pháp đo khoảng thời gian giữa 2 sườn xung (T method) bằng Timer1 Capture khi vận hành ở dải tốc độ thấp.
5. Chi phí dự toán và khả năng bảo trì hệ thống định kỳ như thế nào?
Tổng chi phí chế tạo mẫu thử nghiệm đơn chiếc dưới $500.000\text{ VNĐ}$. Hệ thống mạch rắn không có tiếp điểm chuyển mạch cơ khí nên độ bền cao, bảo trì định kỳ sau mỗi 2000 giờ hoạt động chủ yếu tập trung vào việc kiểm tra độ mòn chổi than của động cơ DC và vệ sinh đĩa quang Encoder.
Kết luận
Đề tài "Thiết kế, chế tạo bộ điều khiển động cơ điện một chiều thuật toán PID dùng vi điều khiển PIC16F877A" đã hoàn thành toàn diện các yêu cầu lý thuyết và thực nghiệm đặt ra trong kỹ thuật truyền động điện tự động. Việc làm chủ trọn vẹn quy trình từ thiết kế mô phỏng, chế tạo bo mạch in, phát triển mã nguồn nhúng đến ứng dụng giải thuật PID số kèm kỹ thuật Anti-Windup khẳng định tính ứng dụng vượt bậc của vi điều khiển giá rẻ trong các bài toán công nghiệp đòi hỏi độ chính xác cao. Đề tài mở ra tiềm năng thương mại hóa lớn trong việc nội địa hóa các thiết bị điều khiển tự động phục vụ nền sản xuất trong nước.