PDA

View Full Version : đo và điều khiển nhiệt đô bình nước dùng PIC 16f887a


dovanhiep
30-12-2007, 09:28 AM
Em có bài tập về PIc16f887a, mong mọi người giúp đỡ!
Em mời làm quen với PIC, ai có tài liệu nào liên quan tới PIC thì post lên luôn nha!
Thanks!

NANO
30-12-2007, 11:48 AM
Mình xin trích dẫn 100% bài của bạn Linhnc bên DTVN:

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

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ị. Vì ta dùng ADC của PIC là 8bit (có thể dùng 10bit) => 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 = VCC=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 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.

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

Files gửi kèm bao gồm sơ đồ mạch Orcad và code viết bằng CCS.



Hướng dẫn quá chi tiết rồi đó.
Chúc thành công
Have Fun

dovanhiep
30-12-2007, 03:45 PM
Mình xin trích dẫn 100% bài của bạn Linhnc bên DTVN:




Hướng dẫn quá chi tiết rồi đó.
Chúc thành công
Have Fun

Bạn ơi!v Mình mới làm quen với Pic. Trong đầu bài thầy còn yêu cầu dùng PT100, chứ không phải dùng LM335.
Bạn có thể hướng dẫn cụ thể cho mình thêm chút nữa được không?
Cảm ơn bạn!

ThanhPhuc
30-12-2007, 04:47 PM
Theo mình Pic 16F877a đủ để bạn làm đề tài không cần phải dùng thêm ADC hoặc EEprom ngoài,nếu khéo tính toán và xử lý độ chính xác có thể đạt được 0,1 Độ C.
Chúc bạn thành công.

VNArmy
31-12-2007, 02:31 PM
Bạn ơi!v Mình mới làm quen với Pic. Trong đầu bài thầy còn yêu cầu dùng PT100, chứ không phải dùng LM335.
Bạn có thể hướng dẫn cụ thể cho mình thêm chút nữa được không?
Cảm ơn bạn!

Với PT100 bạn có thể dùng nguồn dòng để nuôi nó hoặc dùng mạch cầu điện trở. Mạch khuếch đại có thể dùng AD620 là OK.

xuanhiendk2
26-02-2009, 04:15 PM
Theo mình Pic 16F877a đủ để bạn làm đề tài không cần phải dùng thêm ADC hoặc EEprom ngoài,nếu khéo tính toán và xử lý độ chính xác có thể đạt được 0,1 Độ C.
Chúc bạn thành công.

Bạn có thể làm chính xác đến 0.1 độ C à? Hix hix cao thủ cao thủ!!!!Mình đo nhiệt độ trong khoảng từ 0-100 độ C sử dụng PLC truyền thông lên máy tính. Mới chỉ đạt sai số 0.14 độ C. Bạn đạt mức sai số 0.1 độ C thì bạn đã kiểm chuẩn ở đâu rồi thế???

namqn
26-02-2009, 06:04 PM
Bạn có thể làm chính xác đến 0.1 độ C à? Hix hix cao thủ cao thủ!!!!Mình đo nhiệt độ trong khoảng từ 0-100 độ C sử dụng PLC truyền thông lên máy tính. Mới chỉ đạt sai số 0.14 độ C. Bạn đạt mức sai số 0.1 độ C thì bạn đã kiểm chuẩn ở đâu rồi thế???
Tôi cho là các bạn đang nói đến độ phân giải (resolution) của kết quả, chứ không phải là độ chính xác (accuracy).

Thân,

xuanhiendk2
26-02-2009, 07:18 PM
Em nói đến độ chính xác đó anh à. Sai số lớn nhất là 0.14 độ C trong dải 0-100 độ C

namqn
26-02-2009, 07:26 PM
Em nói đến độ chính xác đó anh à. Sai số lớn nhất là 0.14 độ C trong dải 0-100 độ C
Bạn tính sai số ra sao mà có kết quả đó?

Thân,

xuantd2010
31-05-2009, 02:14 PM
thank all vi tai lieu nhe.rat bo ich.:))

hoangnguyen_qn
01-06-2009, 01:06 PM
chính xác đến 0.1 độ C là chấp nhận đc rồi

maitruccucdao
02-06-2009, 01:47 PM
chào mọi người, em đang làm mạch đo nhiệt độ dùng con lm35 nhưng con này, có giá trị điện áp từ -55 đến 150,không biết phải tính toán như thế nào, giúp em với được chứ. phải nó hiện thị từ -55 là 0 v còn 150 là 2 v còn dể , đằng này nó lại hiện từ -55 vào khoảng -550mv, còn 150 là 1500mv. Cái giá trị đó làm sao hở mọi người.
Em đang làm về con pic6f877a. nhưng không biết phải mắt như thế nào để nâng mức điện áp lên khoảng 5 v khi nhiệt độ là 150 độ cả. Mong mọi người chỉ giáo nhé. thanks

doflamingo
22-10-2009, 10:07 PM
thanks nhieu ,

xuanhiendk2
20-04-2010, 08:54 AM
Bạn tính sai số ra sao mà có kết quả đó?

Thân,

Em đã kiểm chuẩn tại cục đo lường chất lượng của BQP.
Sai số ở đây là sai số tương đối lớn nhất. Nghĩa là với các mẫu đo nhiệt độ, thiết bị đo của em bị lệch lớn nhất là 0,14 độ C.

lephuthuan
07-01-2011, 10:49 PM
mình cũng đang làm đồ án về điều khiển nhiệt độ lò ấp dung pic 16f877a nữa, sao mình hong thấy file.rack đâu hết vậy, xin mọi người giúp đở email của minh nè: pthuan.dongthap@gmail.com thanks mọi người nhiều

hein_ts
24-04-2011, 10:33 AM
http://www.picvietnam.com/forum/showthread.php?t=8975

mình có một số vấn đề trong mục này. Mong các bạn tham khảo và đóng góp nhé!