Bối cảnh và vấn đề nghiên cứu

Trong các hệ thống tự động hóa công nghiệp và dân dụng, nhiệt độ là một trong những đại lượng vật lý quan trọng hàng đầu, có ảnh hưởng trực tiếp đến trạng thái, độ bền và tính chất của vật chất cũng như sự vận hành của thiết bị kỹ thuật. Việc đo lường, giám sát và xử lý tín hiệu nhiệt độ đòi hỏi các hệ thống thu thập dữ liệu phải có độ chính xác phù hợp, hoạt động ổn định và giá thành hợp lý. Xuất phát từ yêu cầu thực tiễn đó, đồ án tốt nghiệp tập trung vào việc nghiên cứu, tính toán và xây dựng hệ thống đo nhiệt độ ứng dụng kỹ thuật vi điều khiển kết hợp cảm biến bán dẫn.

Mục tiêu tổng quát của đồ án là thiết kế hoàn chỉnh một hệ thống đo nhiệt độ tự động, sử dụng vi điều khiển để chuyển đổi tín hiệu tương tự sang số, xử lý dữ liệu và hiển thị kết quả trực quan. Các nhiệm vụ nghiên cứu cụ thể được xác định trong văn bản bao gồm:

  1. Nghiên cứu tổng quan về nguyên lý đo nhiệt độ và các loại cảm biến nhiệt điện trở, đặc biệt là cảm biến nhiệt độ bán dẫn.
  2. Khảo sát cấu trúc phần cứng, tập lệnh và đặc tính biến đổi tương tự - số (ADC) của vi điều khiển PIC16F877A.
  3. Nghiên cứu công cụ lập trình, trình biên dịch CCS C và quy trình thiết lập dự án thông qua công cụ PIC Wizard.
  4. Nghiên cứu nguyên lý hoạt động, cấu trúc thanh ghi, vùng nhớ và tập lệnh điều khiển của mô-đun hiển thị tinh thể lỏng LCD 1602.
  5. Thiết kế phần cứng hệ thống bao gồm: khối xử lý tín hiệu trung tâm, khối giao tiếp cảm biến, khối hiển thị LCD và khối nguồn ổn áp 5V.
  6. Xây dựng sơ đồ nguyên lý, mạch in, lưu đồ thuật toán và viết chương trình phần mềm nhúng thực hiện việc thu thập dữ liệu ADC, tính toán nhiệt độ và điều khiển cảnh báo.

Đối tượng và phạm vi nghiên cứu của đề tài được giới hạn như sau:

  • Đối tượng nghiên cứu: Cấu trúc phần cứng và mô-đun ADC của vi điều khiển PIC16F877A, cảm biến nhiệt độ bán dẫn (LM35 / LM335), mô-đun màn hình LCD 1602 (chuẩn điều khiển HD44780), vi mạch ổn áp nguồn tuyến tính LM7805 và trình biên dịch CCS C Compiler.
  • Phạm vi không gian: Đề tài thực hiện tại Khoa Điện – Điện tử, Trường Đại học Quản lý và Công nghệ Hải Phòng.
  • Phạm vi thời gian: Đề tài được giao thực hiện từ ngày 20 tháng 6 năm 2022 và hoàn thành vào ngày 10 tháng 9 năm 2022.

Cơ sở lý thuyết và phương pháp

Cơ sở lý thuyết của đề tài dựa trên nhiệt động lực học và kỹ thuật điện tử - vi điều khiển:

  • Khái niệm và thang nhiệt độ: Nhiệt độ xác định dựa trên các định luật nhiệt động; thang nhiệt độ nhiệt động tuyệt đối là thang Kelvin ($0\text{ K}$), lấy mốc cân bằng ba trạng thái của nước (rắn, lỏng, hơi).
  • Cảm biến nhiệt điện trở kim loại: Sự thay đổi điện trở theo nhiệt độ tuân theo biểu thức: $$R_\theta = R_0 (1 + \alpha \theta)$$ Trong đó, $\alpha$ là hệ số nhiệt điện trở. Điện trở suất $\rho$ càng lớn thì độ nhạy càng cao nhưng dải đo càng hẹp. Dải nhiệt độ đo của các kim loại thông dụng gồm: Bạch kim (Pt: $200^\circ\text{C} \div 1200^\circ\text{C}$), Niken (Ni: $-190^\circ\text{C} \div 250^\circ\text{C}$), Đồng (Cu: $-50^\circ\text{C} \div 180^\circ\text{C}$).
  • Cảm biến nhiệt điện trở bán dẫn (Silic): Vật liệu bán dẫn nhạy cảm cao với nhiệt độ. Khi $\theta < 200^\circ\text{C}$ thì $\alpha > 0$; khi $\theta > 200^\circ\text{C}$ thì $\alpha < 0$. Điện trở biến thiên theo quan hệ phi tuyến bậc 2: $$R_T = R_0 \left[ 1 + A(T - T_0) + B(T - T_0)^2 \right]$$ Với $R_0, T_0$ là điện trở và nhiệt độ ở điểm chuẩn ($0\text{ K}$), hệ số $A = 0{,}007874\text{ K}^{-1}$, $B = 1{,}874 \times 10^{-5}\text{ K}^{-2}$.
  • Đặc tính cảm biến LM35 / LM335: Cảm biến tạo ra điện áp tuyến tính tỷ lệ thuận với nhiệt độ với hệ số chuyển đổi $10\text{ mV/}^\circ\text{C}$, điện áp hoạt động $4 \div 20\text{ VDC}$, dòng tiêu thụ $60\ \mu\text{A}$, dải đo $-55^\circ\text{C} \div 150^\circ\text{C}$, sai số $0{,}25^\circ\text{C}$, kiểu chân TO-92 (kích thước $4{,}3\text{ mm}$).
  • Khung lý thuyết vi điều khiển PIC16F877A: Vi điều khiển thuộc họ PIC16Fxxx có kiến trúc RISC với 35 lệnh 14-bit, tốc độ hoạt động tối đa $20\text{ MHz}$ (chu kỳ lệnh $200\text{ ns}$), bộ nhớ Flash 8K $\times$ 14-bit, RAM 368 $\times$ 8-byte, EEPROM 256 $\times$ 8-byte, 5 cổng vào/ra (33 chân I/O), tích hợp bộ biến đổi ADC 10-bit với 8 kênh đầu vào.

Phương pháp nghiên cứu được triển khai bao gồm:

  • Phương pháp phân tích - tổng hợp lý thuyết: Thu thập và nghiên cứu tài liệu kỹ thuật (datasheet) của vi điều khiển PIC16F877A, cảm biến LM35/LM335, bộ điều khiển HD44780 của LCD1602.
  • Phương pháp thiết kế kỹ thuật phần cứng: Tính toán giá trị linh kiện, phối ghép các khối chức năng (mạch tạo xung dao động, mạch reset, mạch ghép nối tín hiệu tương tự, mạch điều khiển hiển thị 4-bit, mạch nguồn ổn áp 5V).
  • Phương pháp lập trình và biên dịch phần mềm: Xây dựng thuật toán, viết mã nguồn bằng ngôn ngữ C sử dụng trình biên dịch CCS C Compiler (phiên bản PCM hỗ trợ dòng vi điều khiển 14-bit opcodes) và nạp chương trình điều khiển cho vi điều khiển.

Nguồn dữ liệu sử dụng trong đồ án xuất phát từ các giáo trình chuyên ngành đo lường cảm biến, giáo trình lập trình C cho vi điều khiển của các tác giả trong nước (Ngô Diên Tập, Vũ Quý Điềm, Nguyễn Vũ Quỳnh, Phạm Quang Huy, Đoàn Hữu Chức) cùng các thông số kỹ thuật chuẩn từ nhà sản xuất linh kiện.


Thiết kế và triển khai hệ thống

Hệ thống đo nhiệt độ được thiết kế theo cấu trúc phần cứng nhúng kết hợp chương trình điều khiển bằng ngôn ngữ C.

Kiến trúc phần cứng

Cấu trúc phần cứng của hệ thống đo nhiệt độ bao gồm 4 khối chức năng chính:

  1. Khối xử lý trung tâm (PIC16F877A): Sử dụng vi điều khiển PIC16F877A. Chân 11 và 32 nối nguồn $+5\text{V}$, chân 12 và 31 nối đất (GND). Nguồn xung đồng hồ sử dụng mạch dao động thạch anh ngoại tần số $12\text{ MHz}$ (hoặc thiết lập cấu hình lên đến $20\text{ MHz}$) kết hợp 2 tụ lọc gốm có điện dung $33\text{ pF}$ mắc tại chân 13 (OSC1) và 14 (OSC2). Mạch reset nối vào chân 1 (MCLR), hoạt động ở mức tích cực thấp (sườn xuống từ mức 1 về mức 0) thông qua nút bấm SW1 và điện trở kéo lên $+5\text{V}$.
  2. Khối cảm biến đo nhiệt độ: Tín hiệu điện áp ngõ ra của cảm biến LM35/LM335 thay đổi liên tục theo nhiệt độ ($10\text{ mV/}^\circ\text{C}$) được đưa trực tiếp vào chân ngõ vào tương tự AN0 (chân RA0) của vi điều khiển PIC16F877A để thực hiện chuyển đổi ADC 10-bit.
  3. Khối hiển thị LCD 1602: Sử dụng màn hình tinh thể lỏng 16 ký tự $\times$ 2 dòng (tương thích chip điều khiển Hitachi HD44780). Màn hình được ghép nối theo chế độ 4-bit dữ liệu nhằm tiết kiệm chân vào/ra của vi điều khiển:
    • 4 đường dữ liệu cao DB4, DB5, DB6, DB7 nối tương ứng với các chân RD4, RD5, RD6, RD7 của PIC16F877A.
    • Chân chọn thanh ghi RS nối với chân RD0.
    • Chân tín hiệu cho phép E (Enable) nối với chân RD1.
    • Chân đọc/ghi RW nối mức 0 (GND) để cố định chế độ ghi dữ liệu.
    • Biến trở $2\text{ k}\Omega$ nối chân $V_0$ để điều chỉnh độ tương phản màn hình; điện trở $330\Omega$ hạn dòng cho đèn nền LED.
  4. Khối nguồn nuôi: Sử dụng vi mạch ổn áp tuyến tính LM7805 biến đổi điện áp nguồn đầu vào thành điện áp $+5\text{VDC}$ ổn định cung cấp cho toàn bộ hệ thống; tích hợp tụ C2, C3 để lọc phẳng gợn sóng và khử nhiễu nguồn; diode phát quang D3 dùng làm đèn báo trạng thái cấp nguồn.

Cấu hình chuyển đổi ADC trên PIC16F877A

Quy trình biến đổi tín hiệu tương tự sang số được thiết lập qua 8 bước tiêu chuẩn:

  • Bước 1: Cấu hình cổng ngõ vào tương tự (Port A), không cấu hình ở chế độ xuất dữ liệu.
  • Bước 2: Cấu hình mô-đun ADC (chọn xung clock chuyển đổi từ dao động RC nội, thiết lập điện áp chuẩn $V_{\text{ref}+}$ và $V_{\text{ref}-}$, chọn kênh chuyển đổi AN0, chọn định dạng canh lề kết quả ADFM, bật nguồn mô-đun ADC qua bit ADON = 1).
  • Bước 3: Thiết lập cấu hình ngắt ADC (xóa cờ ADIF, gán ADIE = 1, PEIE = 1, GIE = 1 nếu sử dụng ngắt).
  • Bước 4: Chờ hết thời gian ổn định lấy mẫu.
  • Bước 5: Bắt đầu quá trình biến đổi bằng cách đặt bit GO/DONE = 1.
  • Bước 6: Kiểm tra bit GO/DONE tự động về 0 báo hiệu quá trình chuyển đổi kết thúc (hoặc chờ ngắt ADC).
  • Bước 7: Đọc dữ liệu số 10-bit từ cặp thanh ghi kết quả ADRESH và ADRESL.
  • Bước 8: Tiếp tục chu kỳ chuyển đổi kế tiếp.

Giải thuật và phần mềm điều khiển

Phần mềm được xây dựng bằng ngôn ngữ C trên trình biên dịch CCS C Compiler:

  • Khởi tạo: Thiết lập cổng Port D làm cổng xuất dữ liệu điều khiển (Port D = 0h), khởi tạo chế độ 4-bit của LCD 1602 với hàm LCD_Init().
  • Vòng lặp đo lường: Đọc giá trị số 10-bit từ bộ ADC qua kênh AN0; quy đổi giá trị số thành giá trị điện áp và suy ra giá trị nhiệt độ thực tế theo tỷ lệ $10\text{ mV} = 1^\circ\text{C}$ ($\text{Nhiệt độ} = \text{Điện áp} \times 100$).
  • Xử lý hiển thị: Định dạng giá trị nhiệt độ sang chuỗi ký tự mã ASCII và hiển thị lên dòng 2 của LCD 1602 theo cú pháp Nhiet Do: %02.2f.
  • Logic cảnh báo: So sánh giá trị nhiệt độ đo được với ngưỡng $35^\circ\text{C}$:
    • Nếu $\text{Nhiệt độ} \ge 35^\circ\text{C}$: Kích hoạt chân PIN_B0 = 1 (mức cao) và ngắt chân PIN_B1 = 0 (mức thấp).
    • Nếu $\text{Nhiệt độ} < 35^\circ\text{C}$: Kích hoạt chân PIN_B1 = 1 (mức cao) và ngắt chân PIN_B0 = 0 (mức thấp).

Nội dung chính theo từng chương

Chương 1. Cảm biến nhiệt độ

Chương này cung cấp hệ thống kiến thức cơ bản về nguyên lý đo nhiệt độ và phân loại các dòng cảm biến phổ biến:

  • Khái niệm về nhiệt độ, vai trò của việc đo nhiệt độ trong các hệ thống tự động hóa và định nghĩa thang nhiệt độ nhiệt động tuyệt đối Kelvin ($0\text{ K}$).
  • Phân loại cảm biến nhiệt điện trở thành 3 nhóm chính: cảm biến nhiệt điện trở kim loại, cảm biến nhiệt điện trở bán dẫn và nhiệt điện trở.
  • Cảm biến nhiệt điện trở kim loại: cấu tạo gồm sợi dây kim loại dán trên bìa cách điện hoặc màng mỏng dán bề mặt (cỡ $\mu\text{m}$); quan hệ điện trở theo nhiệt độ $R_\theta = R_0(1 + \alpha\theta)$; bảng thông số dải nhiệt độ đo của các vật liệu kim loại (Pt, Ni, Cu).
  • Cảm biến nhiệt điện trở bán dẫn: phân tích tính nhạy nhiệt của vật liệu Silic tinh khiết, đặc tính đổi dấu của hệ số nhiệt $\alpha$ tại mốc $200^\circ\text{C}$ và phương trình phi tuyến tính $R_T = R_0 [1 + A(T - T_0) + B(T - T_0)^2]$.
  • Giới thiệu chi tiết thông số kỹ thuật của cảm biến nhiệt độ bán dẫn LM35: dải điện áp $4 \div 20\text{ VDC}$, dòng $60\ \mu\text{A}$, dải đo $-55^\circ\text{C} \div 150^\circ\text{C}$, độ nhạy $10\text{ mV/}^\circ\text{C}$, sai số $0{,}25^\circ\text{C}$, đóng vỏ TO-92.
Loại cảm biến / Vật liệu Dải nhiệt độ làm việc Đặc điểm / Công thức quan hệ
Bạch kim (Pt) $200^\circ\text{C} \div 1200^\circ\text{C}$ Kim loại có điện trở suất cao, độ ổn định lớn
Niken (Ni) $-190^\circ\text{C} \div 250^\circ\text{C}$ Kim loại đo nhiệt độ dải trung bình
Đồng (Cu) $-50^\circ\text{C} \div 180^\circ\text{C}$ Đo nhiệt độ dải thấp, tuyến tính tốt
Bán dẫn Silic $-55^\circ\text{C} \div 200^\circ\text{C}$ ($\alpha > 0$) $R_T = R_0[1 + A(T-T_0) + B(T-T_0)^2]$
Cảm biến LM35 $-55^\circ\text{C} \div 150^\circ\text{C}$ Điện áp tuyến tính $10\text{ mV/}^\circ\text{C}$, sai số $0{,}25^\circ\text{C}$

Chương 2. Vi điều khiển PIC 16F877A

Nội dung chương 2 trình bày cấu trúc phần cứng của vi điều khiển PIC16F877A và môi trường phát triển phần mềm:

  • Cấu trúc phần cứng: vi điều khiển họ PIC16Fxxx, kiến trúc 35 lệnh độ dài 14-bit, tần số dao động tối đa $20\text{ MHz}$, bộ nhớ chương trình Flash 8K $\times$ 14-bit, RAM 368 bytes, EEPROM 256 bytes, 33 chân I/O trên 5 cổng (Port A đến Port E).
  • Khối chức năng ngoại vi: 3 bộ định thời (Timer0 8-bit, Timer1 16-bit, Timer2 8-bit), 2 bộ Capture/Compare/PWM, các chuẩn truyền thông nối tiếp SSP, SPI, $I^2C$, USART và cổng song song Slave (PSP).
  • Khối biến đổi ADC 10-bit: khảo sát 8 kênh đầu vào tương tự (AN0 - AN7), các chân điện áp tham chiếu $V_{\text{ref}+}$ (chân AN3) và $V_{\text{ref}-}$ (chân AN2), các thanh ghi điều khiển và lưu kết quả ADRESH, ADRESL, ADCON0, ADCON1, cùng quy trình 8 bước thực hiện chuyển đổi ADC.
  • Trình biên dịch CCS C Compiler: cấu trúc tích hợp 3 trình dịch (PCB cho dòng 12-bit, PCM cho dòng 14-bit, PCH cho dòng 16/18-bit); hướng dẫn chi tiết quy trình tạo dự án qua 13 Tab của công cụ PIC Wizard:
    • Tab General (chọn chip PIC16F877A, tần số dao động, cấu hình cầu chì Fuses, con trỏ RAM).
    • Tab Communications (cấu hình RS232, $I^2C$).
    • Tab SPI and LCD (cấu hình giao tiếp nối tiếp SPI và LCD).
    • Tab Timer (cấu hình nguồn xung và thời gian tràn cho Timer0, Timer1, Timer2, WDT).
    • Tab Analog (chọn kênh ADC, chọn điện áp $V_{\text{ref}}$, chọn độ phân giải 8-bit hoặc 10-bit, chọn nguồn xung đồng hồ lấy mẫu internal $2 \div 6\ \mu\text{s}$).
    • Tab Capture/Compare/PWM (bắt giữ xung, so sánh ngưỡng Timer1, điều chế độ rộng xung PWM, so sánh điện áp Comparator).
    • Tab Interrupts và Tab Driver (cấu hình các nguồn ngắt và nạp thư viện ngoại vi như EEPROM, RAM PCF8570, RTC DS1302, Keypad, LCD).

Chương 3. Thiết kế hệ thống đo nhiệt độ dùng cảm biến LM335

Chương 3 trình bày toàn bộ quá trình tính toán, thiết kế sơ đồ nguyên lý, mạch in và lập trình hệ thống:

  • Sơ đồ khối tổng thể: Khối nguồn $\rightarrow$ Khối cảm biến nhiệt độ $\rightarrow$ Khối giao tiếp ADC $\rightarrow$ Khối xử lý PIC16F877A $\rightarrow$ Khối hiển thị LCD.
  • Thiết kế phần cứng khối xử lý tín hiệu: sơ đồ ghép nối PIC16F877A với nguồn $+5\text{V}$ (chân 11, 32), nối đất (chân 12, 31), thạch anh $12\text{ MHz}$ kèm 2 tụ $33\text{ pF}$ (chân 13, 14) và mạch reset chân 1 (MCLR).
  • Thiết kế phần cứng khối cảm biến: kết nối ngõ ra tương tự của cảm biến LM35/LM335 vào kênh AN0 (chân RA0) của vi điều khiển.
  • Thiết kế khối hiển thị: ghép nối LCD 1602A ở chế độ 4-bit qua cổng Port D (chân dữ liệu DB4-DB7 nối RD4-RD7; chân điều khiển RS nối RD0, E nối RD1, RW nối GND).
  • Thiết kế khối nguồn: sử dụng vi mạch LM7805 tạo nguồn ổn định $+5\text{VDC}$, tụ C2, C3 lọc phẳng và LED D3 báo nguồn.
  • Xây dựng sơ đồ nguyên lý, sơ đồ mạch in toàn mạch và lưu đồ thuật toán điều khiển.
  • Lập trình phần mềm điều khiển trên CCS C (chi tiết tại Phụ lục 2 và 3): xây dựng các hàm giao tiếp LCD 4-bit (LCD_Init, LCD_SetPosition, LCD_PutChar, LCD_PutCmd, LCD_PulseEnable, LCD_SetData) và chương trình xử lý chính đọc ADC, tính toán nhiệt độ hiển thị và điều khiển ngõ ra cảnh báo tại PORTB (PIN_B0, PIN_B1) khi nhiệt độ vượt ngưỡng $35^\circ\text{C}$.

Kết quả và đóng góp

Đồ án đã hoàn thành các nội dung kỹ thuật theo đúng mục tiêu đề ra với các kết quả cụ thể:

  • Thiết kế hoàn chỉnh sơ đồ nguyên lý và sơ đồ mạch in của hệ thống đo nhiệt độ sử dụng vi điều khiển PIC16F877A kết hợp cảm biến bán dẫn.
  • Xây dựng mạch nguồn ổn áp $+5\text{VDC}$ sử dụng vi mạch LM7805 bảo đảm cấp nguồn ổn định cho vi điều khiển, cảm biến và màn hình LCD.
  • Xây dựng thành công bộ thư viện điều khiển màn hình LCD 1602 hoạt động ở chế độ 4-bit dữ liệu, giúp tiết kiệm 4 chân I/O của vi điều khiển so với chế độ 8-bit truyền thống.
  • Cấu hình và lập trình thành công mô-đun ADC 10-bit nội của PIC16F877A, thực hiện đọc tín hiệu điện áp từ cảm biến LM35 đưa vào chân AN0, chuyển đổi dữ liệu và tính toán hiển thị nhiệt độ chính xác theo thang đo độ C lên LCD.
  • Triển khai thuật toán so sánh ngưỡng cảnh báo nhiệt độ tự động tại mức $35^\circ\text{C}$ điều khiển trạng thái các chân logic ngõ ra PIN_B0 và PIN_B1 trên PORTB.
Khối chức năng Linh kiện / Công nghệ Thông số kỹ thuật triển khai Chức năng trong hệ thống
Xử lý trung tâm PIC16F877A Flash 8K, RAM 368B, xung $12\text{ MHz}$, tụ $33\text{ pF}$ Thu thập dữ liệu ADC, tính toán và xuất tín hiệu điều khiển
Cảm biến nhiệt LM35 / LM335 Dải đo $-55^\circ\text{C} \div 150^\circ\text{C}$, độ nhạy $10\text{ mV/}^\circ\text{C}$ Cảm nhận nhiệt độ và biến đổi thành tín hiệu điện áp tuyến tính
Khối biến đổi ADC 10-bit tích hợp 8 kênh tương tự (kết nối kênh AN0), $V_{\text{ref}}$ nội Biến đổi tín hiệu điện áp liên tục thành giá trị số nhị phân
Khối hiển thị LCD 1602A (HD44780) 16 ký tự $\times$ 2 dòng, giao tiếp 4-bit (RD4-RD7) Hiển thị chuỗi thông tin nhiệt độ thực tế (%02.2f $^\circ\text{C}$)
Khối cảnh báo Ngõ ra PORTB Chân PIN_B0, PIN_B1 điều khiển logic Bật/tắt tín hiệu cảnh báo theo ngưỡng nhiệt độ $35^\circ\text{C}$
Khối nguồn nuôi LM7805 Điện áp ra $+5\text{VDC}$ cố định, lọc tụ C2, C3 Cấp nguồn nuôi một chiều ổn định cho toàn hệ thống

Về mặt đóng góp, đề tài đã hệ thống hóa cơ sở lý thuyết về cảm biến nhiệt điện trở và kỹ thuật chuyển đổi tương tự - số trên dòng vi điều khiển PIC16Fxxx; cung cấp tài liệu hướng dẫn cụ thể về quy trình cấu hình công cụ PIC Wizard trên trình biên dịch CCS C và mã nguồn mẫu điều khiển phần cứng có khả năng ứng dụng trực tiếp vào giảng dạy thực hành hoặc phát triển các mạch đo lường tương tự.


Hạn chế và hướng nghiên cứu tiếp

Dựa trên nội dung được trình bày trong đồ án, các mặt còn hạn chế bao gồm:

  • Đồ án tập trung chủ yếu vào thiết kế sơ đồ nguyên lý, cấu hình ngoại vi và viết mã nguồn mô phỏng; chưa cung cấp các bảng số liệu thực nghiệm đo đạc thực tế dài hạn hoặc phân tích sai số trong môi trường công nghiệp có nhiễu cao.
  • Hệ thống mới chỉ sử dụng 1 kênh đầu vào tương tự (AN0), chưa khai thác hết năng lực của bộ đa hợp 8 kênh ADC tích hợp trên vi điều khiển PIC16F877A.
  • Chức năng cảnh báo nhiệt độ được lập trình cứng tại ngưỡng cố định $35^\circ\text{C}$, chưa tích hợp bàn phím hoặc nút bấm để người dùng có thể tùy chỉnh ngưỡng cảnh báo linh hoạt từ bên ngoài.
  • Văn bản tồn tại sự không đồng nhất về ký hiệu mã cảm biến trong nội dung (đề cập đan xen giữa cảm biến LM35 và LM335) và có một đoạn nhầm lẫn trong văn bản gốc khi nhắc đến "cảm biến siêu âm SRF10" ở phần mở đầu chương 3.

Hướng nghiên cứu và phát triển tiếp theo của đề tài:

  • Mở rộng hệ thống đo lường nhiệt độ đa điểm bằng cách kết nối thêm nhiều cảm biến nhiệt độ vào các kênh tương tự còn lại từ AN1 đến AN7.
  • Tích hợp thêm khối bàn phím ma trận (Keypad) để cho phép cài đặt và thay đổi ngưỡng nhiệt độ cảnh báo trực tiếp trên thiết bị.
  • Bổ sung giao tiếp truyền thông nối tiếp qua cổng USART/RS232 để truyền dữ liệu nhiệt độ đo được lên máy tính, phục vụ việc giám sát và lưu trữ dữ liệu từ xa.

Giá trị tham khảo

Đồ án là tài liệu kỹ thuật có giá trị tham khảo thiết thực cho:

  • Đối tượng thụ hưởng: Sinh viên, học viên thuộc các ngành Điện Tự động công nghiệp, Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Điện tử - Viễn thông, Công nghệ Kỹ thuật Cơ điện tử hoặc các ngành kỹ thuật liên quan đến Hệ thống nhúng.
  • Nội dung tham khảo giá trị:
    • Quy trình 8 bước chuẩn để thiết lập và vận hành khối ADC 10-bit trên vi điều khiển PIC.
    • Phương pháp xây dựng giao tiếp 4-bit điều khiển LCD 1602 chuẩn HD44780 kèm mã nguồn C chi tiết (tại Phụ lục 2).
    • Hướng dẫn cấu hình trực quan từng Tab chức năng trong công cụ PIC Wizard của trình dịch CCS C Compiler.
    • Sơ đồ mạch nguyên lý hoàn chỉnh kết hợp giữa cảm biến điện áp tuyến tính, khối biến đổi ADC và vi điều khiển phục vụ các đồ án môn học hoặc khóa luận tốt nghiệp về đo lường và điều khiển.

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

1. Vi điều khiển PIC16F877A có các thông số phần cứng chính nào được sử dụng trong đề tài?
PIC16F877A thuộc họ vi điều khiển 8-bit RISC với 35 lệnh độ dài 14-bit, tốc độ xung nhịp tối đa $20\text{ MHz}$ (chu kỳ lệnh $200\text{ ns}$), bộ nhớ Flash chương trình 8K $\times$ 14-bit, RAM 368 bytes, EEPROM 256 bytes, 33 chân I/O trên 5 cổng, tích hợp sẵn mô-đun ADC 10-bit với 8 kênh đầu vào tương tự.

2. Cảm biến nhiệt độ LM35 có những đặc tính kỹ thuật cơ bản nào phục vụ việc ghép nối với vi điều khiển?
Cảm biến LM35 có dải điện áp làm việc từ $4 \div 20\text{ VDC}$, dòng tiêu thụ khoảng $60\ \mu\text{A}$, dải đo nhiệt độ từ $-55^\circ\text{C}$ đến $150^\circ\text{C}$, sai số $0{,}25^\circ\text{C}$, kiểu chân TO-92. Tín hiệu ngõ ra là điện áp tuyến tính với độ nhạy $10\text{ mV/}^\circ\text{C}$, phù hợp đưa trực tiếp vào ngõ vào ADC của vi điều khiển.

3. Khối ADC trên PIC16F877A được cấu hình và lưu trữ dữ liệu thông qua những thanh ghi nào?
Mô-đun ADC sử dụng 4 thanh ghi chính: thanh ghi điều khiển ADCON0 và ADCON1 (dùng để chọn kênh AN0-AN7, chọn xung clock, chọn điện áp chuẩn $V_{\text{ref}}$, định dạng canh lề kết quả); cặp thanh ghi lưu kết quả chuyển đổi 10-bit là ADRESH (byte cao) và ADRESL (byte thấp).

4. Màn hình LCD 1602 được kết nối với vi điều khiển theo phương thức nào để tiết kiệm chân I/O?
Màn hình LCD 1602 được ghép nối theo chế độ 4-bit dữ liệu, chỉ sử dụng nửa byte cao (các chân DB4, DB5, DB6, DB7 nối vào RD4, RD5, RD6, RD7 của PIC). Các chân điều khiển gồm RS nối RD0, E nối RD1, và chân RW được nối đất (mức logic 0) để thực hiện chế độ ghi.

5. Thuật toán điều khiển ngõ ra cảnh báo của hệ thống hoạt động với ngưỡng nhiệt độ nào?
Chương trình đọc giá trị ADC từ kênh AN0, tính toán ra nhiệt độ theo công thức $\text{Nhiệt độ} = \text{Điện áp} \times 100$. Nếu nhiệt độ đo được $\ge 35^\circ\text{C}$, vi điều khiển kích hoạt PIN_B0 = 1 và PIN_B1 = 0; nếu nhiệt độ $< 35^\circ\text{C}$, vi điều khiển đặt PIN_B1 = 1 và PIN_B0 = 0.


Kết luận

Đồ án tốt nghiệp của sinh viên Đặng Văn Thoan đã hoàn thành thiết kế hệ thống đo nhiệt độ tự động sử dụng vi điều khiển PIC16F877A kết hợp cảm biến bán dẫn LM35/LM335 và màn hình hiển thị LCD 1602. Tác giả đã giải quyết trọn vẹn các yêu cầu kỹ thuật từ tính toán sơ đồ nguyên lý mạch nguồn LM7805, mạch tạo dao động thạch anh và mạch reset, đến cấu hình khối ADC 10-bit và xây dựng thư viện điều khiển giao tiếp LCD chế độ 4-bit trên trình biên dịch CCS C. Hệ thống đáp ứng tốt chức năng thu thập dữ liệu, quy đổi giá trị nhiệt độ hiển thị trực quan và thực hiện cảnh báo tự động theo ngưỡng nhiệt độ xác định.