You are on page 1of 2

Đo nhiệt độ bằng LM335 + atmega8 : (Sơ đồ đã cắt bớt những chi tiết không liên quan tới công

việc của bạn) Sơ đồ đã chạy thật và nhiệt độ đo về cũng tạm ổn:

1 2 3 4

VCC

R4
10K RESET
A A

VCC C6
4
3

S1
C3 C2
C12 104
U2 J1
C5
100uF/16V

10uF/16V

10uF/16V
1 16 1
C1+ VCC 10uF/16V
3 6
1
2

C1-
4 2 2 11
C2+ VS+
5 7
C2-
U4 8 3 10
R2IN
D1 11 14 8
T1IN T1OUT
14 23 AD0 10 7 4
PB0 (ICP) PC0 (ADC0) T2IN T2OUT
15 24 13 12 9
D2 PB1 (OC1A) PC1 (ADC1) R1IN R1OUT
16 25 D0 9 5
PB2 (SS/OC1B) PC2 (ADC2) R2OUT
VCC MOSI 17 26
B PB3 (MOSI/OC2) PC3 (ADC3) B
P2 MISO 18 27 SDA 15 6
PB4 (MISO) PC4 (ADC4/SDA) GND VS-
SCK 19 28 SCL
2 D1 C11 PB5 (SCK) PC5 (ADC5/SCL) C4
XTAL1 9 1 RESET MAX232N
1 104 PB6 (XTAL1/TOSC1) PC6 (RESET) 10uF/16V
XTAL2 10
PB7 (XTAL2/TOSC2)
NGUON 5V GND
D0 2 7 VCC
PD0 (RXD) VCC
D1 3 20 VCC
PD1 (TXD) AVCC
C10 INT0 4 21 VCC
PD2 (INT0) AREF
XTAL1 5
PD3 (INT1)
OE 6 22 VCC
33pF PD4 (XCK/T0) GND
DAT 11 8
X1 PD5 (T1) GND
CLK 12
8MHZ PD6 (AIN0)
STB 13
PD7 (AIN1) R2 R3
C9
XTAL2 10K 10K
ATmega8-16PC
33pF
U3 VCC
VCC SCL 6 8 P1
C SCL VCC C
SDA 5 3
SDA VBAT 1
X1 1
R1 X1 2
X2 2 7 INT0
330 X2 SQW/OUT
PIN DS1307
4
GND
AD0
X1

X2
Y2 DS1307
1 2

32.768kHz
2
1

U1 C7 C8
33pF 33pF
V+

Rv1
ADJ

10K C1
104
LM335Z

100pF
V-
3

Title
D D

Size Number Revision


A4
Date: 6/8/2010 Sheet of
File: D:\MY WORK\..\TONG HOP.SchDoc Drawn By:
1 2 3 4

H1. LM335 và RS232 hay hiển thị Led 7 thanh.

Tôi đưa ra công thức để tính nhiệt độ là độ C :

adc = read_adc(0); // adc là giá trị đọc về từ kênh AD0 10bit

T = (adc-558.5)/2.049; //là nhiệt độ đã chuyển đổi ra độ C. (1)

Bây giờ ta đi giải thích các thông số : 558.5 và 2.048 ở đâu ra.

- ADC của atmega8 sử dụng 10bit.

- LM335 là sensor đo nhiệt độ đầu ra là 10mV/K.

Muốn đo độ C thì cần phải chuyển đổi từ độ K sang độ C.

Với ADC 10bit thì từ 0-5V đọc về tương ứng 0-1023 giá trị ADC. Chọn Vref = 5V.
Suy ra: tại 0C hay 273K thì đầu vào bộ AD0 là 2.73V(do 10mV/K).

Nên tính ra độ C thì phải trừ đi mức điện áp là 2.73V tương đương với giá trị của ADC 10bit là :

(2.73/5)*1023 = 558.5 giá trị ADC 10bit. Nên trong công thức (1) xuất hiện hiệu số : adc – 558.5

- Khi bạn đọc ADC về thì :

Với Vref = Vcc = 5V nên 1 giá trị tương ứng của ADC 10bit = 5/1023 ~ 0.00488 (V) ~ 4.88
(mV).

Do LM335 có tỷ lệ :

10mV tương ứng thay đổi 1K

 4.88mV ADC đọc về thay đổi 0.488K (tỷ lệ thui mà).

Khi đó công thức cuối cùng sẽ là :

T = (adc – 558.5) * (4.88mV/10mV) = (adc – 558.5) /2.049

Phần còn lại là hiển thị lên Led7 thanh hay giao diện trên máy tính tùy bạn. 

Chúc thành công!

You might also like