PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC > Những câu hỏi thường gặp

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Những câu hỏi thường gặp Những lỗi cơ bản thường gặp khi làm việc với PIC hoặc những vấn đề cơ bản nhất thường được hỏi trong những năm qua

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 05-04-2008, 12:19 AM   #1
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Đ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 ?

thay đổi nội dung bởi: minhsondaklak, 07-04-2008 lúc 09:21 PM. Lý do: Í xin lỗi, lộn chuồng. Nhờ Mod chuyển sang mục cảm biến nhiệt
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2009, 12:33 AM   #2
lehung883
Nhập môn đệ tử
 
Tham gia ngày: Mar 2006
Bài gửi: 2
:
chết ứ ự từ bao giờ

Trích:
Nguyên văn bởi minhsondaklak View Post
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 .
lehung883 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2009, 01:31 AM   #3
nmhai
Đệ tử 3 túi
 
nmhai's Avatar
 
Tham gia ngày: Dec 2007
Bài gửi: 60
:
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)
__________________
Email: nmhai83@yahoo.com
nmhai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-11-2009, 11:18 PM   #4
tanhaui
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 7
:
Trích:
Nguyên văn bởi nmhai View Post
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
tanhaui vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-08-2009, 10:41 PM   #5
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
Ngắn gọn, dễ hiểu. Thank !
__________________
minhsondaklak@yahoo.com
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2009, 07:10 AM   #6
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-08-2009, 06:45 PM   #7
minhsondaklak
Đệ tử 5 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 96
:
-Trả về I2C nghe chừng hấp dẫn đây, chắc là chính xác hơn.
__________________
minhsondaklak@yahoo.com
minhsondaklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-11-2009, 10:05 AM   #8
nolovehphp
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 1
:
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
nolovehphp vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-11-2009, 02:04 AM   #9
hellongaymoi
Nhập môn đệ tử
 
Tham gia ngày: Sep 2008
Bài gửi: 9
:
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.
hellongaymoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-11-2009, 01:22 AM   #10
hellongaymoi
Nhập môn đệ tử
 
Tham gia ngày: Sep 2008
Bài gửi: 9
:
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
hellongaymoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-12-2009, 11:46 AM   #11
tartar
Nhập môn đệ tử
 
Tham gia ngày: Sep 2009
Bài gửi: 1
:
Trích:
Nguyên văn bởi hellongaymoi View Post
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 ạ ?
tartar vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-09-2012, 11:34 PM   #12
chipmunk2509
Nhập môn đệ tử
 
chipmunk2509's Avatar
 
Tham gia ngày: Jun 2012
Bài gửi: 1
:
Trích:
Nguyên văn bởi hellongaymoi View Post
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!
chipmunk2509 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-12-2009, 10:16 PM   #13
special_one
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Nơi Cư Ngụ: Thieu Lam Tu
Bài gửi: 4
:
Trích:
Nguyên văn bởi minhsondaklak View Post
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
special_one vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-11-2010, 09:45 PM   #14
phamvanthuanpro
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 2
:
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
phamvanthuanpro vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:26 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam