Đề tài: Mạch đo nhiệt độ và cảnh báo

1.Chức năng của mạch:
- Đo nhiệt độ môi trường tại một điểm thông qua sensor nhiệt LM335(Chi tiết về LM335
xem trong datasheet). LM335 là sensor đo nhiệt, đầu ra là 10mV/K. Do đó để đo độ C ta
cần có công thức chuyển đổi giá trị từ độ K sang độ C. Vì ta dùng ADC của PIC là 8bit
=> max=255, Vref=VCC, giả thiết là VCC=5V nên tại 0 độ C hay 273K thì đầu ra của
LM335 có giá trị là 2.73V. Như vậy khi muốn tính toán ra độ C ta cần phải trừ đi mức
điện áp là 2.73V. Lấy ví dụ: nhiệt độ là 30 độ C = 303K -> out = 303 x 10mV/K =3.03V.
Ta tính toán giá trị đọc được từ ADC.
- ADC 8 bit(V_in là điện áp đưa vào chân ADC của PIC):
V_in = 5V
=> ADC_value = 255
V_in = 2.73V => ADC_value = (255/5)x2.73=139.23 (tương ứng 0 độ C)
V_in = 3.03V => ADC_value = (255/5)x3.03=154.53(tương ứng 30 độ C)

Mặt khác do V_ref = VCC=5V nên ADC_value=1 tương ứng 5/255=19.6mV ~
20mV. Trong khi đó LM335 cho ra điện áp là 10mV/1K nên để giá trị ADC thay đổi 1 đơn
vị thì nhiệt độ phải thay đổi là 2K (hay gần 20mV) Từ đó ta có công thức đầy đủ sau để
tính giá trị độ C:
C=(ADC-139.25)x(19.6mV/10mV)=(ADC-139.25)x1.96~(ADC-139.25)/0.512
Tương tự ta có công thức cho ADC 10bit và 12 bit:
ADC_10_bit: C= ( reading-558.6)/ 2.048
ADC_12_bit: C= ( reading-2235.9)/ 8.19
- Để hiện thị giá trị nhiệt độ ta có nhiêu phương án như LED 7, LCD, máy tính(qua
RS232)... Trong đề tài này ta dùng LED 7 thanh cho việc hiển thị. Gồm có hai LED 7,
dùng PIC để giải mã hiển thị cho LED (có thể dùng 7447 để tiết kiệm chân). Để cảnh
báo ta đặt khoảng theo dõi nhiệt là từ 15 C đến 40 C (cái này tuỳ vào người dùng) khi
nhiêt độ nằm ngoài khoảng này thì phát tín hiệu cảnh báo bằng loa và có thể gửi tín
hiệu điều khiển đến các mạch khác nếu có.
- Mạch có sử dụng thêm điện trở tinh chỉnh 10K tại chân ADJ của LM335 để điều chỉnh
nhiệt độ ban đầu cho phù hợp.
2.Mở rộng của đề tài:
- Nâng cao độ chính xác hiển thị bằng cách dùng ADC có độ phân giải cao hơn (có thể
dùng ADC ngoài)
- Thêm bàn phím giao tiếp để có thể thay đổi trực tiếp khoảng nhiệt độ theo dõi, cùng
với đó ta thêm vào LED 7 để hiển thị hai giá trị nhiệt độ này
- Sử dụng EEPROM để lưu giá trị nhiệt độ mà người dùng thiết lập, các lần thay đổi
khác...
- Ghép nối máy tính để truyền giá trị nhiệt độ đến máy tính
- Ghép nối LCD và một mạch đếm thời gian thực (DS1307) để ứng với mỗi thời điểm
chương trình sẽ tự động chọn khoảng thiết lập nhiệt độ thích hợp theo từng mùa, từng
thời điểm định trước...
- Sử dụng PID trong điều khiển tự động kết hợp với các mạch điều khiển tăng giảm
nhiêt độ để đảm bảo nhiệt độ luôn bám theo một giá trị cho trước, hệ ổn định nhiệt (giá
trị thay đổi là rất nhỏ)
- Vân vân và vân vân...anh em nào có thêm cao kiến gì thì bổ sung.
Liện hệ: linhnc308@yahoo.com BK Design Group

5
b
6

D OT

4
a
c

HI

22pF
10MHz

22pF

4K7

40
39
38
37
36
35
34
33
4
5
6
7
8
9
10

Q3

4K7

SPEAKER
HI

4K7

13
14
15
16
17
18
19
20

RD2/PSP2 RB7/PGD
RD3/PSP3 RB6/PGC
RB5
RC4/SDI/SDA
RB4
RC5/SDO
RC6/TX/CK RB3/PGM
RB2
RC7/RX/DT
RB1
RD4/PSP4
RB0/INT
RD5/PSP5
RD6/PSP6
RD7/PSP7
RA2/AN2
RA3/AN3
RA4
RA5/AN4
OSC1/CLKI RE0/AN5
OSC2/CLKO RE1/AN6
RC0/T1CKI RE2/AN7
RC1/CCP2
RC2/CCP1
RC3/SCK/SCL
RD0/PSP0
RD1/PSP1
VDD1
VSS1

32
31

2

21
22
23
24
25
26
27
28
29
30

A1015

HI

12

VDD
VSS

RA1/AN1
RA0/AN0
VPP

3
2
1

3
LM335Z

10K

1K

HI

HI

PIC16F877A

1

11

HI

7

3
VC C

2
f
d

e

Vcc
8

9

1
g

5
b
D OT
6

10

4
a

3
VC C
Vcc

c
7

8

2
f
d
9

1
g
e
10

A1015

VR10K

Sign up to vote on this title
UsefulNot useful