PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Những câu hỏi thường gặp (http://www.picvietnam.com/forum/forumdisplay.php?f=54)
-   -   Đo nhiệt độ với LM35 ? (http://www.picvietnam.com/forum/showthread.php?t=2207)

minhsondaklak 05-04-2008 12:19 AM

Đo nhiệt độ với LM35 ?
 
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

chết ứ ự từ bao giờ
 
Trích:

Nguyên văn bởi minhsondaklak (Post 15344)
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/ParamChartS...g=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

Trích:

Nguyên văn bởi nmhai (Post 28538)
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

Trích:

Nguyên văn bởi hellongaymoi (Post 31763)
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

Trích:

Nguyên văn bởi minhsondaklak (Post 15344)
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

Trích:

Nguyên văn bởi hellongaymoi (Post 31763)
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!


Múi giờ GMT. Hiện tại là 05:27 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam