Tải bản đầy đủ (.docx) (20 trang)

Xây dựng hệ thống đo và xử lí tín hiệu cảm biến nhiệt kim loại

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1023.96 KB, 20 trang )

BÁO CÁO
Chủ đề: Xây dựng hệ thống đo và xử lí tín hiệu cảm biến nhiệt kim loại.
1. Phân tích nguyên lý, cấu tạo của cảm biến nhiệt kim loại.
a. Khái quát và nguyên lý hoạt động
Nhiệt điện trở kim loại còn gọi là RTD (resitance temperature detector) là cảm biến
nhiệt độ thông dụng như cặp nhiệt điện. RTD cỏ cấu tạo từ kim loại được quấn tùy
theo hình dáng của đầu đo. Khi nhiệt độ thay đồi điện trở giữa hai đầu dây kim loại
này sẽ thay đối, cụ thế là nhiệt độ tăng thì điện trở tăng.
Dựa vào nguyên lý của sự thay đồi điện trờ, người ta chứng minh được rằng điện
trờ RTD thay đổi phụ thuộc vào nhiệt độ theo phương trình sau:
RT=R0( 1+aT + pT2)
(1.1)
Trong đó: + RT: điện trờ tại nhiệt độ T (°C)
+ R0 :điện trờ tại nhiệt độ 0 ( ° C)
+ a và p là hằng số xác định theo thực nghiệm
Nếu nhiệt độ trong khoảng ngắn nhất định thì cơng thức trên có thể đơn giản thành:
RT = R0( 1+aT)
(1.2)
Tùy vào chất liệu kim loại sẽ có độ tuyến tính trong một khoảng nhiệt độ nhất định.
Tùy thuộc vào phạm vi đo nhiệt độ mà ta chọn vật liệu thích hợp, người ta thường
sử dụng điện trở bằng platin, nickel và đơi khi bằng đồng, Wonfram, Bạch kim
(platinum): có thề được chế tạo tinh khiết (99,99%) điều này cho phép tăng độ
chính xác và tính chất điện của vật liệu, ngồi ra nó trơ về hóa học và ổn định trong
cấu trúc tinh thế nên platin đảm bào sự ổn định của các đặc tính dần điện. Các điện
trở lảm bằng platin hoạt động trong dài nhiệt độ khá rộng -2000C - 10000C vì thế
nên điện trở kim loại platin được đánh giá cao, sử dụng phố biến nhất.

b. Cấu tạo và đặc điểm của nhiệt điện trở kim loại
Đề sử dụng trong cơng nghiệp thi nó phải có vỏ bọc chống được va đập mạnh và
rung động, điện trở kim loại được cuốn và bao bọc trong thủy tinh hoặc gốm và
5



4


được đặt trong vỏ bảo vệ bằng thép như hình 2.6.

Hình 1.1: Nhiệt kế cơng nghiệp dùng điện trở Platin
1) Dây platin 2) Gốm cách điện 3) Ống platin 4)Dây nối 5)Sứ cách điện
6) Trục gá 7) Cách điện 8) Vỏ bọc 9) Xi măng
2. Lựa chọn cảm biến với thơng số phù hợp
Ta có dải đo từ: T0C = tmin - tmax = 0 – (100+10*n) 0C (2.1)
Chọn T0C = tmin - tmax = 0 – 150 0C

Từ yêu cầu trên ta sử dụng nhiệt điện trở kim loại và dải đo từ 0- 150 0C ta đi tính
và lựa chọn cảm biến.
2


Nhiệt điện trở kim loại có rất nhiều loại nhưng có hai loại thường dùng là nhiệt
điện trở nickel và nhiệt điện trở platin. Ta đi sử dụng nhiệt điện trở platin với dải đo
rộng và độ tuyến tính cao. Cụ thể trong bài nay ta đi sử dụng nhiệt điện trở PT100
nhiệt điện trở có đọ tuyến tính cững tương đối và điện trở R0 tại 0 0C là 100 sau
đây là chi tiết về cảm biến nhiệt PT100 cấu tạo can nhiệt PT100.






Cảm biến nhiệt độ PT100 có cấu tạo là một nhiệt điện trở RTD (RTD-Resistance

Temperature Detector )
Nguyên lý hoạt động nhiệt điện trở dựa trên sự thay đổi nhiệt độ dẫn đến thay đổi
điện trở.
Rt = R0 (1 + at)
(2.2)
Rt: Điện trở ở nhiệt độ t
R0 : Điện trở ở 0 độ c
a : Hệ số của nhiệt điện trở

Hình 2.1: Can Nhiệt PT100

12345-

Đầu cảm biến (Platinum/Nickel).
Dây tín hiệu của cảm biến nhiệt điện trở.
Chất cách điện bằng gốm.
Chất làm đầy.
Vỏ bảo vệ.

Hình 2.2: Cấu tạo PT100
Điện trở này là một dây kim loại có bọc các đoạn sứ bao quanh toàn bộ dây
kim loại. Phần bao bọc này lại được đặt trong một ống bảo vệ(thermowell) thường
có dạng hình trịn, chỉ đưa 2 đầu dây kim loại ra để kết nối với thiết bị chuyển đổi.
Phần ống bảo vệ sẽ được đặt ở nơi cần đo nhiệt độ, thông thường can nhiệt này chỉ
3


đo được nhiệt độ tối đa là 600 0C. Hai đầu dây kim loại để chừa ra ở phần ống bảo
vệ được kết nối tới một thiết bị gọi là bộ chuyển đổi tín hiệu nhiệt thành tín hiệu
điện phục vụ cho việc truyền tới phòng điều khiển giám sát. Thiết bị chuyển đổi có

cấu tạo chẳng qua là một cầu điện trở có một nhánh chính là PTl00(có điện trở là
100 ở 0 độ C)

Bảng 2.1: Bảng thông số điện trở của cảm biến nhiệt pt100
Đáp ứng của RTD khơng tuyến tính nhưng nó có độ ổn định và chính xác rất
cao, do vậy hay được dùng trong các ứng dụng u cầu độ chính xác cao. Nó
thường được dùng trong khoảng nhiệt độ từ -250 đến +850°. Can nhiêt PT100 là kí
hiệu thường được sử dụng để nói đến RTD với hệ số alpha=0,00391 và R0=100 .

Như vậy điện trở của dải đo tương ứng là ở 0 0C là 100 và ở 150 0C là
157.33 .
3. Tính tốn, xây dựng hệ thống đo và xử lý tín hiệu.
Từ bản chất của nhiệt kế điện trở, chúng ta kết luận rằng dung sai phụ thuộc vào
phạm vi đang sử dụng. Khi chúng ta sử dụng để đo nhiệt độ gần 0 0 C (cả dương và
4


âm), dung sai là tối thiểu. Khi chênh lệch với 0 0 C tăng dung sai cũng tăng. Dung
sai thấp hơn ở 50 0 C so với 100 0 C.
Bố trí mạch và mơ tả nhiệt độ đo bằng PT100 và pic18f4520
Mạch đo nhiệt độ sử dụng PT100 và pic 18f4520 được thiết kế xung quanh quad
op-amp LM324, , màn hình hiển thị LCD và một vài thành phần điện tử khác như
điện trở, tụ điện, v.v.

Mạng chia điện áp cho PT100:
Vì PT100 là một nhiệt kế điện trở, tức là điện trở trong của nó thay đổi theo nhiệt
độ. Một bộ chia điện áp đơn giản với nguồn điện áp không đổi (giả sử 5v), điện trở
không đổi và PT100 được kết nối như trong hình 3.1.
Điện trở đang thay đổi theo nhiệt độ do kết quả V out (điện áp trên PT100) cũng thay
đổi. Điện áp thay đổi này phụ thuộc vào việc thay đổi điện trở.

Bằng cách sử dụng cơng thức chia điện áp, chúng ta có thể tính tốn điện áp đầu
ra. Cơng thức tốn học cho mạng chia điện áp
(3.1)
Trong khi chọn điện trở cố định (R), chúng ta phải xem xét một vài điều:
1. Giá trị của điện trở (R) phải đủ lớn để tránh vấn đề tự làm nóng. Nếu

chúng ta sử dụng điện trở giá trị thấp, điện áp sẽ giảm nhiều hơn trên
PT100 do đó sẽ tự sưởi ấm hơn. Điều này làm tăng lỗi.

2. Giá trị của R phải đủ thấp để tránh vấn đề tín hiệu thấp hơn tỷ lệ

nhiễu. Nếu chúng ta tăng giá trị của R, thay đổi cường độ trên mỗi độ sẽ
giảm do tín hiệu thấp hơn tỷ lệ nhiễu. Giá trị lớn của R cũng làm tăng
nhiễu cũng chịu trách nhiệm cho tín hiệu thấp hơn tỷ lệ nhiễu.
Để chọn R thích hợp, chúng ta phải đánh đổi giữa vấn đề tự sưởi ấm và tín hiệu tốt
hơn cho tỷ lệ nhiễu. Hãy xem sự cân nhắc để lựa chọn giữa giá trị của R.

5


Hình 3.1: Mạng chia điện áp PT100
Bây giờ, giả sử chúng ta thiết kế nhiệt kế cho phạm vi 0 0 C đến 150 0 . Nếu chúng
ta xem xét điện trở cố định R = 1k và R TD ở 0 0 C = 100, thì điện áp đầu ra V ra có
thể được tính như sau:
Tương tự, V ra ở 150 0 C:
Theo bảng dữ liệu về điện trở PT100 ở 150 0 C, R TD = 157,33
Từ tính tốn trên ta phải đo điện áp trong khoảng 0,4545V đến 0,6797V.

Mạch theo dõi điện áp:
Có hai lý do sử dụng mạch theo dõi điện áp:

6


1. Để tránh hiệu ứng tải.
2. Điện trở đầu vào cao hơn.

Đầu ra của PT100 ( ) được cấp cho mạch theo dõi điện áp. Mạch theo dõi điện áp về
cơ bản là một bộ khuếch đại không đảo ngược đạt được. Mạch khuếch đại này được
gọi là tín hiệu điện áp vì điện áp đầu ra bằng và cùng pha với đầu vào. Đầu ra của
PT100 () được kết nối với thiết bị đầu cuối khơng đảo trong đó thiết bị đầu cuối đảo
ngược được kết nối trực tiếp với đầu ra (để đạt được sự thống nhất).

Hình 3.2: Mạng phân chia điện áp PT100 với bộ khuếch đại theo dõi điện áp
Nhiệt độ tối thiểu chúng ta sẽ đo là 0 0 C. Điện áp ở nhiệt độ này (0 0 C) là
0,4545 0 C. Vì vậy, chúng ta cần trừ điện áp này để có được 0V ở 0 0 C. Với mục
đích này, chúng ta cần bộ khuếch đại vi sai. Nhưng trước đó chúng ta cần một
nguồn 0,4545 volt không đổi. Đối với nguồn 0,4545 V không đổi, chúng tôi đã thiết
kế một mạch theo dõi điện áp khác.
Nguồn điện áp không đổi:
(3.2)
RV1=4700 53%

7


Hình 3.3: Mạng chia điện áp khơng đổi
Tương tự như trên, chúng tôi đang sử dụng mạch theo dõi điện áp để tránh hiệu ứng
tải. Đầu ra từ mạng phân chia điện áp được kết nối với thiết bị đầu cuối khơng đảo
trong đó thiết bị đầu cuối đảo ngược được kết nối trực tiếp với pin đầu ra.


Hình 3.4: Mạng phân chia điện áp không đổi với bộ khuếch đại theo dõi điện áp
Từ đạo hàm của bộ khuếch đại vi sai, đầu ra điện áp được cho bởi,
8


(3.3)
Ở đây,
R B = Điện trở phản hồi
R A = Điện trở đầu vào
V 1 = điện áp ở đầu cuối đảo ngược
V 2 = điện áp ở cực không đảo
Kiểm tra đạo hàm và tham số chính của bộ khuếch đại vi sai
Trường hợp 1: Khi nhiệt độ được đặt thành 0 0 C, đầu ra của PT100 là 0,4545V và
đầu ra của bộ chia điện áp cố định cũng là 0,4545V. Đầu ra bộ khuếch đại vi sai
cũng trở thành số không.
Trường hợp 2: khi nhiệt độ tối đa là đầu ra điện áp 150 0 C từ PT100 = 0,6797V

Ở đây, tăng
Chọn giá trị tham chiếu phù hợp cho PIC18F4520
Điện áp tham chiếu ADC bên trong mặc định là 5V với ADC 10 bit tức là nó chia
điện áp đầu vào chia 2 10 (1024). Độ phân giải của PIC18F4520 ở 5V = 5/1024 =
4,88mV.
Từ tính tốn trên, thấy rằng trong phạm vi nhiệt độ 0 0 C đến 150 0 C, điện áp thấp
nhất= 0,4545V và điện áp cao nhất= 0,6797V.
Chênh lệch điện áp giữa điện áp thấp nhất và điện áp cao nhất= 0,6797V-0,4545V =
0,2252V.
Tổng số phép chia cho 0,2252V = 0,2252V / 4,88mV = 46,14 tức là khoảng 47 phép
chia cho 0 0C đến 150 0C.
ADC hiển thị 150/47 = 3,25 0 C trên mỗi lần thay đổi điện áp, tức là PIC18F4520
có thể đo được nhiệt độ thấp nhất là 3,25 0 C khơng thích hợp. Vì vậy, chúng ta cần

bộ khuếch đại.

Chúng tơi có thể sử dụng bộ khuếch đại ở phạm vi đầy đủ nhưng có hai vấn
đề:
1.

Độ lợi cao hơn: Chúng ta phải khuếch đại điện áp đầu vào vi sai để
mở rộng cao (giả sử 5V) do đó chúng ta đã sử dụng giá trị cao hơn
của điện trở phản hồi.
9


2.

Cung cấp điện bên ngồi cần thiết: Rất khó để khuếch đại lên đến
điện áp cung cấp. Theo bảng dữ liệu của LM324, điện áp đầu ra bộ
khuếch đại tối đa = điện áp cung cấp -1,5V. Nếu chúng ta đang sử
dụng 5V từ ADC làm điện áp cung cấp thì điện áp khuếch đại tối đa =
5V-1.5V = 3.5V. Vì vậy, ở nguồn cung cấp 5V, 1.5V của ADC bị lãng
phí. Để sử dụng tham chiếu 5V mặc định, chúng tơi cần nguồn điện
bên ngồi cho LM324, phải lớn hơn 6,5V.

Để giải quyết vấn đề trên, chúng tôi quyết định sử dụng ADC nội bộ 1.1V của
pic 18f4520
Tính tốn khuếch đại cho bộ khuếch đại vi sai
Ở đây, chúng ta đang sử dụng điện áp tham chiếu bên trong 1,1V do đó điện áp tối
đa mà PIC18F4520 có thể đọc là 1,1V. Vì vậy, chúng ta phải khuếch đại điện áp
chênh lệch cực đại (giả sử 0,2252V) lên 1,1V
Vra = 1,1V
V2 – V1 = 0,2252V


Bây giờ đặt giá trị trên vào phương trình (1)

Để đạt được mức tăng 4,88, giá trị của điện trở R B phải 4,88 lần giá trị của điện trở
R A.
Chúng ta chọn RB =49k và RA = 10k

10


Hình 3.5: Bộ khuếch đại vi sai cho PT100

PIC18F4520
Đầu ra của bộ khuếch đại vi sai được cấp cho chân đầu vào tương tự của
PIC18F4520. PIC18F4520 đọc phân chia điện áp và chuyển đổi nó thành nhiệt độ
bằng phương trình và hiển thị nó qua LCD. Đầu ra của bộ khuếch đại vi sai được
cấp cho chân AN0.

Danh sách thành phần của Nhiệt độ đo bằng PT100 và PIC18F4520
Điện trở (tất cả ¼-watt, ± 5% Carbon)
R1 = 1 KΩ
R2, R5, R6 = 47 KΩ
R3, R4 = 10 KΩ
R7 = 220 KΩ
R8 = 330 Ω
VR1, VR2 = 10 KΩ
Tụ điện
C1 = 100 µF/16V (Tụ điện phân)
11



C2 = 100 nF (Đĩa gốm)
Chất bán dẫn
U1 = LM324 (Quad Op-Amp)
Các thành phần khác
Cảm biến nhiệt độ PT100
PIC18F4520
LCD 16 × 2 chữ số
4. Kết nối và mô phỏng hệ thống

Hình 4.1: Kết nối và mơ phỏng

12


5. Hiển thị và lập trình hệ thống
Chuyển đổi điện áp thành điện trở
ADC đọc điện áp từ bộ khuếch đại vi sai ở dạng phân chia. Điện áp đọc bởi adc
trước tiên được chuyển đổi thành điện trở bằng phương trình đường thẳng tức là Y =
mX + C. Ở đây chúng ta phải tính giá trị của m (độ dốc) và C (không đổi). Đối với
độ dốc, chúng ta phải đo điện áp và điện trở ở hai nhiệt độ khác nhau, giả sử ở 10 0C
và 60 0C.
Theo bảng thông số điện trở của cảm biến nhiệt pt100

Bảng 5.1
Ở nhiệt độ T 1 (10 0C)
V T1 = 0,08V
R T1 = 103,9 (Theo Bảng dữ liệu)
Ở nhiệt độ T 2 (60 0C)
13



V T2 = 0,46
R T2 = 123,24 (Theo Bảng dữ liệu)
Công thức cho độ dốc
(5.1)
Đặt, X 1 = 0,08, X 2 = 0,46V, Y 1 = 123,24 và Y 2 = 103,9. Đặt các giá trị này vào
phương trình (2), chúng ta sẽ có giá trị của độ dốc
Vì thế,
Ở nhiệt độ T 3(30 0C)
V T3 = 0,233V
R T3 = 111,2 (Theo Bảng dữ liệu)

Bây giờ, đặt giá trị của m (độ dốc) vào phương trình Y = mx + c, để tìm giá trị của c
(khơng đổi). Ở 30 0C, R TH = 111,2 và V out = 0,233V.
Bây giờ, đặt giá trị Y = 111,2, x = 0,233 và m =50,8947
C = Y - mx = 111,2 – 50,8947.0.233= 99,3415
Ngoài ra, từ biểu dữ liệu của PT100, giá trị của
Độ dốc (m) = 50,8947
Hằng số (c) = 99,3415
R 0 (điện trở ở 0 0C) = 100

Chuyển đổi điện trở thành nhiệt độ
Từ công thức:
Rt = R0 (1 + aT)
(5.2)
T= ( ( Rt / R0 ) – 1 ) / a

14



Đây là những giá trị chúng ta cần trong code
Mã phần mềm đo nhiệt độ bằng PT100 và PIC18F4520

Phần mềm được viết bằng ngơn ngữ lập trình C và được biên dịch bằng
MPLAP IDE. Trong khi viết mã phần mềm, bạn phải xem xét một vài điều
như chọn ADC nội bộ 1,1V. Để chọn ADC nội bộ 1,1V, bạn phải thêm cú
pháp trong hàm OpenADC: ADC_VREFPLUS_EXT&
ADC_VREFMINUS_EXT,
Cú pháp chuyển đổi bit thành điện áp
AD1 = (float)((AD*1.1)/1023);
Cú pháp chuyển đổi điện áp thành điện trở
Rx = Volts * độ dốc + C= (float)(AD1* 50.8947) + 99.3415;
Cú pháp chuyển đổi điện trở thành nhiệt độ
temp1 = (Rx / R0-1.0) / alpha= (float)((Rx / 100)-1.0) / 0.00358;
Cú pháp sai số
saiso= 0,3 + (0,005 * temp1)= (float)0,3 + (0,005 * temp1);
Cú pháp tính nhiệt độ sau sai số:
C=(int)(temp1-saiso);

Code hoàn chỉnh để đo Nhiệt độ bằng PT100 và PIC18F4520
#include
#include<stdio.h>
#include <adc.h>
#include <delays.h>

#define

LCD_DATA


PORTD

#define

LCD_RS

PORTEbits.RE0

#define

LCD_RW

PORTEbits.RE1
15


#define

LCD_EN

PORTEbits.RE2

char message[32];
unsigned int AD;
void Lcd_configure(void);//KHOI TAO LCD
void Lcd_Write_Command(char command);//GHI LENH
void Lcd_Write_Data(char data);//GHI DATA
void Lcd_Write_String (char *str);
void ADC0(void);


void ADC0(void)//KHOI TAO ADC
{
// configure A/D convertor
OpenADC( ADC_FOSC_32 &
ADC_RIGHT_JUST &//don phai
ADC_12_TAD,
ADC_CH0 &

//CHAN AN0

ADC_INT_OFF&

//KHONG NGAT

ADC_VREFPLUS_EXT&
ADC_VREFMINUS_EXT,
14);//ADCON1=OX0E;E=14///CHON CHAN AN0

ConvertADC();

// Start conversion

while(BusyADC() ); // Wait for completion
AD = ReadADC();
CloseADC();

// Read result
// Disable A/D converter
16



}
void Lcd_configure (void)
{
Lcd_Write_Command(0x02);
Lcd_Write_Command(0x38);
Lcd_Write_Command(0x06);
Lcd_Write_Command(0x0c);
Lcd_Write_Command(0x01);
}
void Lcd_Write_Command (char command)
{
LCD_RS

= 0;

LCD_RW = 0;
LCD_EN = 1;
LCD_DATA = command;
LCD_EN = 0;
Delay1KTCYx(10);//10mS
}
void Lcd_Write_Data (char data)
{
if(data=='\n')
{
Lcd_Write_Command(0xC0);//HANG 2
Delay1KTCYx(10);//10mS
return;
}

17


LCD_RS

= 1;

LCD_RW = 0;
LCD_EN

= 1;

LCD_DATA = data;
LCD_EN

= 0;

Delay1KTCYx(10);//10mS
}
void Lcd_Write_String (char *str)
{
while(*str)
{
Lcd_Write_Data(*str);
str++;
}
}
void main()
{
float AD1,Rx,temp1,saiso;

unsigned int AD2,C;

TRISD=0x00;//OUT PUT
TRISE=0X00;
TRISA=0X01;//in RA0
ADCON1=0X0E;
Lcd_configure();
while(1)
18


{
ADC0();
AD1=(float)((AD*1.1)/1023);
Rx = (float)(AD1* 50.8947) + 99.3415;
temp1 = (float)((Rx / 100)-1.0) / 0.00358;
saiso = (float)0,3 + (0,005 * temp1);
C=(int)(temp1-saiso);
Lcd_Write_Command(0X80);//dau dong 1
sprintf(&message[0],"nhietdola=%d(oC)",C);
Lcd_Write_String(&message[0]);
}
}

19


Chạy thử mơ phỏng:

Hình 5.1: Mơ phỏng


20



×