PDA

View Full Version : Đo nhiệt độ với LM35 ?


minhsondaklak
05-04-2008, 12:19 AM
Xin hỏi các huynh cách lấy nhiệt độ từ con LM35 qua giao tiếp ADC như sau:

Dùng ADC 10 bít, điện áp lấy mẫu Vdd = 5V, sensor LM35 (10 mV / 1 độ C)
Xác định nhiệt độ đo được qua số đo trên chân ADC:
Ta có: 5000 mV --- ứng với --- 1023 (thang đo ADC 10 bít)
Vậy: 10 mV --- ứng với --- 10 x 1023/5000 = 2,046
Con số 2,046 tính được đó chính là lượng thay đổi trên chân ADC ứng với thay đổi 10mV ở đầu ra LM35 hay ứng với thay đổi 1 độ C trên LM35.

Suy ra nhiệt độ đo được: Nhiệt độ = ADC_Read(0) / 2,046 (độ C)
(ADC_Read(0) là lệnh đọc ADC trong MikroC)

Không biết em tính nhiệt độ theo công thức như thế có ổn không ?
Rất mong được các huynh chỉ giáo, xin cám ơn !
-------------------------------------------------------
7/4/2008:
Còn với LM335 (10mV/ 1 độ K) thì chỉ việc đổi kết quả sang độ C:
Nhiệt độ = ADC_Read(0)/2,046 (độ K) = ADC_Read(0)/2,046 - 273 (độ C)
Có phải vậy không các huynh ?

lehung883
11-08-2009, 12:33 AM
Xin hỏi các huynh cách lấy nhiệt độ từ con LM35 qua giao tiếp ADC như sau:

Dùng ADC 10 bít, điện áp lấy mẫu Vdd = 5V, sensor LM35 (10 mV / 1 độ C)
Xác định nhiệt độ đo được qua số đo trên chân ADC:
Ta có: 5000 mV --- ứng với --- 1023 (thang đo ADC 10 bít)
Vậy: 10 mV --- ứng với --- 10 x 1023/5000 = 2,046
Con số 2,046 tính được đó chính là lượng thay đổi trên chân ADC ứng với thay đổi 10mV ở đầu ra LM35 hay ứng với thay đổi 1 độ C trên LM35.

Suy ra nhiệt độ đo được: Nhiệt độ = ADC_Read(0) / 2,046 (độ C)
(ADC_Read(0) là lệnh đọc ADC trong MikroC)

Không biết em tính nhiệt độ theo công thức như thế có ổn không ?
Rất mong được các huynh chỉ giáo, xin cám ơn !
-------------------------------------------------------
7/4/2008:
Còn với LM335 (10mV/ 1 độ K) thì chỉ việc đổi kết quả sang độ C:
Nhiệt độ = ADC_Read(0)/2,046 (độ K) = ADC_Read(0)/2,046 - 273 (độ C)
Có phải vậy không các huynh ?

Câu hỏi này của bác ấy từ bao giờ em cũng muốn biết các bác làm ơn chỉ dùm em với .

nmhai
11-08-2009, 01:31 AM
Nếu lấy VREF = 5V.
10mV tương ứng 1 oC.
5000mV <----------> 1023 (ADC 10 bits)
dẫn đến:
500 oC <-----------> 1023
x oC <------------> Read_Adc();
Suy ra:
Nhiệt độ đo được:
x = 500 * Read_Adc()/1023 (đơn vị oC)

minhsondaklak
11-08-2009, 10:41 PM
Ngắn gọn, dễ hiểu. Thank !

falleaf
12-08-2009, 07:10 AM
Nếu đang dùng Microchip thì nên tìm hiểu thêm Microchip cũng có những dòng sản phẩm đo nhiệt độ:
- Trả về analog như LM35 thì có những dòng như MCP97xx, MCP98xx
- Trả về I2C thì có thể sử dụng TC74A0-5.0VAT (hiện R&P đang sử dụng loại này cho bo mạch học PIC.)

Nên tham khảo thêm tại: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=9001&mid=11&lang=en&pageId=79

Chúc vui

minhsondaklak
26-08-2009, 06:45 PM
-Trả về I2C nghe chừng hấp dẫn đây, chắc là chính xác hơn.

nolovehphp
22-11-2009, 10:05 AM
em mun bit 1 so ung dung khac ung dung cua modul do nhiet do dung sensor lm35 va con adc 8 bit.coa anh nao jup em vui dc hok ak?cam un cac su huynh nhiu nhiu

hellongaymoi
23-11-2009, 02:04 AM
Nếu sủ dụng ADC 8bit thi do dược tối đa là 255 0C . Mà lm35 chi đo chính sác được tới 150 oC thôi. Giá trị đọc của ADC 0804(8bit) là D=Vin.255/Vref.

tanhaui
25-11-2009, 11:18 PM
Nếu lấy VREF = 5V.
10mV tương ứng 1 oC.
5000mV <----------> 1023 (ADC 10 bits)
dẫn đến:
500 oC <-----------> 1023
x oC <------------> Read_Adc();
Suy ra:
Nhiệt độ đo được:
x = 500 * Read_Adc()/1023 (đơn vị oC)

huynh cho đệ hỏi là nếu lấy VREF=0v thì sẽ tính như thế nào. huynh nhắn vào mail cho e với nhé: ngoctandt@gmail.com

hellongaymoi
29-11-2009, 01:22 AM
pó tay bạn luôn.vreff ko bao giờ chỉnh ở 0v cả.mà ban muốn làm thì sử dụng công thức D=Vin.1023/vreff.Minh cũng làm mạch đo nhiệt độ này rồi, chạy rất tốt nhưng mình sử dụng 89c51 kết hợp vói adc 0804(8 bit).sử dụng công thức trên bạn có thê lập trình sai số tùy ý.
ví dụ: ban muốn đo sai số là 0.5 oC bạn chỉ đo đc từ 0-->127.5 oC
-----> Vreff=2.55 V

tartar
19-12-2009, 11:46 AM
pó tay bạn luôn.vreff ko bao giờ chỉnh ở 0v cả.mà ban muốn làm thì sử dụng công thức D=Vin.1023/vreff.Minh cũng làm mạch đo nhiệt độ này rồi, chạy rất tốt nhưng mình sử dụng 89c51 kết hợp vói adc 0804(8 bit).sử dụng công thức trên bạn có thê lập trình sai số tùy ý.
ví dụ: ban muốn đo sai số là 0.5 oC bạn chỉ đo đc từ 0-->127.5 oC
-----> Vreff=2.55 V

anh HELLONGAYMOI có thể úp cái sơ đồ nguyên lý và code của mạch đo nhiệt độ dùng 89c51 lên diễn đàn để em xem tham khảo được không ạ ?

special_one
20-12-2009, 10:16 PM
Xin hỏi các huynh cách lấy nhiệt độ từ con LM35 qua giao tiếp ADC như sau:

Dùng ADC 10 bít, điện áp lấy mẫu Vdd = 5V, sensor LM35 (10 mV / 1 độ C)
Xác định nhiệt độ đo được qua số đo trên chân ADC:
Ta có: 5000 mV --- ứng với --- 1023 (thang đo ADC 10 bít)
Vậy: 10 mV --- ứng với --- 10 x 1023/5000 = 2,046
Con số 2,046 tính được đó chính là lượng thay đổi trên chân ADC ứng với thay đổi 10mV ở đầu ra LM35 hay ứng với thay đổi 1 độ C trên LM35.

Suy ra nhiệt độ đo được: Nhiệt độ = ADC_Read(0) / 2,046 (độ C)
(ADC_Read(0) là lệnh đọc ADC trong MikroC)

Không biết em tính nhiệt độ theo công thức như thế có ổn không ?
Rất mong được các huynh chỉ giáo, xin cám ơn !
-------------------------------------------------------
7/4/2008:
Còn với LM335 (10mV/ 1 độ K) thì chỉ việc đổi kết quả sang độ C:
Nhiệt độ = ADC_Read(0)/2,046 (độ K) = ADC_Read(0)/2,046 - 273 (độ C)
Có phải vậy không các huynh ?

mình cũng đang làm đề tài để nộp thầy, mình cũng tính ra được rùi nhưng mình xuất ra led 7 đoạn cứ sai hoài ah, do yêu cầu đề tài phải làm ra mạch để nộp nên phải làm cho chính xác hix. mong bạn giúp đỡ mình với, cảm ơn bạn trước. địa chỉ mình zicokim@gmail.com

phamvanthuanpro
03-11-2010, 09:45 PM
x = 500 * Read_Adc()/1023 (đơn vị oC)
cong thuc dung
neu ko tin tuong ban co the tim doc giao trinh kithuatcambien dhspkt tphcm

chipmunk2509
20-09-2012, 11:34 PM
pó tay bạn luôn.vreff ko bao giờ chỉnh ở 0v cả.mà ban muốn làm thì sử dụng công thức D=Vin.1023/vreff.Minh cũng làm mạch đo nhiệt độ này rồi, chạy rất tốt nhưng mình sử dụng 89c51 kết hợp vói adc 0804(8 bit).sử dụng công thức trên bạn có thê lập trình sai số tùy ý.
ví dụ: ban muốn đo sai số là 0.5 oC bạn chỉ đo đc từ 0-->127.5 oC
-----> Vreff=2.55 V
anh co the noi ro hon ve viec sai so la 0.5 thi chi do duoc tu 0-->127,5 doC dc ko?,neu dai do la tu 0-100 oC voi sai so la 1 oC thi cach tinh nhu nao,cam on anh nhieu!