LM335 and 7seg with XC8

2:33:00 AM
Đ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ỏ).

- Ảnh mô phỏng protues.

đo nhiệt độ lm335 hiển thị led 7 đoạn pic16f877a xc8

- Link download project. Click here

Share this

Related Posts

Previous
Next Post »