Giỏ hàng
DANH MỤC

Cảm biến độ ẩm nhiệt độ dùng HS1101+DS18B20

Đăng bởi Cửa hàng linh kiện điện tử KME ngày 0 bình luận

ỨNG DỤNG HS1101, DS18B20 VỚI ATMEGA8

Đặng Minh Khang- KME Electronics

1. Tổng quan

  1. Trong ứng dụng hàng ngày, nhu cầu theo dõi nhiệt độ và độ ẩm ngày càng trở nên phổ biến và thiết thực và sử dụng trong:
  • Sản xuất chế biến nông nghiệp
  • Hiển thị và thực thi điều khiển (quạt gió, máy sấy, điều hòa,... hay báo động)
  • Datalog dữ liệu về môi trường tại một khu vực...

Trên thị trường có một số loại cảm biến độ ẩm, nhiệt độ: SHT75, SHT11, HS1101,....với độ chính xác khác nhau


Sensor

Độ chính xác độ ẩm (%RH)

Độ chính xác nhiệt độ (°C)

Chuẩn giao tiếp

Chuẩn hóa

(Calibrated)

SHT10

±4.5%

±0.5°C

2-Wire

Đã chuẩn hóa

SHT11

±3%

±0.4°C

2-Wire

Đã chuẩn hóa

SHT15

±3%

±0.3°C

2-Wire

Đã chuẩn hóa

SHT71

±3%

±0.4°C

2-Wire

Đã chuẩn hóa

SHT75

±1.8%

±0.3°C

2-Wire

Đã chuẩn hóa

HS1101

±2%

No

No

Chưa chuẩn hóa

DS18B20

±0.5°C




2. LỰA CHỌN SENSOR

Tùy theo yêu cầu mà loại sensor nào được chọn, nếu cần độ chính xác cao thì SHT75 là sự lựa chọn phù hợp. Để đạt tiêu chí kinh tế và độ chính xác tương đối thì HS1101 có thể tốt nhất, với độ chính xác về độ ẩm 2%RH, HS1101 không thua kém gì SHT1x (lên tới ±4.5%RH).

Như vậy HS1101+DS18B20=102.000VND, chỉ bằng 1 nửa so với SHT10. Vấn đề của HS1101 là cần mạch phụ và chuẩn hóa lại sau khi lắp mạch.

3. HƯỚNG DẪN SỬ DỤNG HS1101 VÀ DS18B20 BẰNG ATMEGA8

Chức năng:

  • Đo độ ẩm, nhiệt độ với chu kỳ 1s
  • Hoạt động ở 2 chế độ: Trigger hoặc Read Manual
  • Chuẩn hóa lại hệ số khi cần thiết
  • Hiệu chỉnh sai số độ ẩm theo nhiệt độ môi trường


Mạch nguyên lý hoạt động cho HS1101

mach nguyen ly hs1101_ds18b20_atmega8

HS1101 cơ bản là 1 tụ biến dung theo độ ẩm, giá trị của nó sẽ thay đổi khi độ ẩm thay đổi. Nguyên ký mạch là tạo ra dao động và tần số thay đổi tương ứng theo giá trị điện dung hay chính là độ ẩm môi trường. Mạch sử dụng ICHa555 để tạo dao động.

Sensor nhiệt độ DS18B20 là sensor có giao tiếp chuẩn 1 dây (1-wire) trực tiếp tới vi điều khiển Atmega8. Atmega8 hoạt động với thạch anh 16MHz, bạn không nên dùng bộ dao động nội 8MHz. Dao động nội 8MHz có độ chính xác không cao dẫn đến sai số khi đo tần số từ mạch dao động sử dụng HS1101.

a. Đo tần số bằng Timer của Atmega8
Để đo tần số bằng Atmega8 ta sử dụng chức năng Input Capture hoặc tùy theo cách của bạn sử dụng Timer để tự đo chu kỳ xung và tính ra tần số
ở đầy, tôi xin đưa ví dụ với Input Capture tham khảo qua trang web 
Lưu ý khi đo tần số:
Bạn nên lấy trung bình một số mẫu liên tiếp để tần số sẽ tập trung ở tần số chính và  kết quả không bị dao động liên tục
Điều chỉnh R4, R5, R6, R7 sao cho tần số về 6660Hz cho độ ẩm 55% (25oC). Giá trị trở như mạch Typical trong datasheet HS1101
Tôi đưa ví dụ code tính độ ẩm từ tần số:


void caculate_rh(void)
{
float f;
if (period!=0)
//period là kết quả từ Inputảcapture
{
f = 16/(float)period*1000000;
//Ví dụ sử dụng tần số thạch anh 16MHz. Kết quả ở đơn vị Hz
if (k<3)
//VÌ dụ lấy trung bình 3 mẫu liên tiếp
{
Fsum =(Fsum + f);
k++;
}
if (k==3)
{
Fsum = Fsum/3;
rh = RHR+(F-Fsum)*0.0762 + 0.001*(temp-T);
Fsum = 0;
k = 0;
}
}
}

b. Chuẩn hóa độ ẩm cho HS1101
Trong ví dụ trên, độ ẩm được tính như sau:
rh = RHR+(F-Fsum)*0.0762 + 0.001*(temp-T);
RHR: Độ ẩm điểm chuẩn hóa
F: Tần số điểm chuẩn hóa
T: Nhiệt độ điểm chuẩn hóa

0.001: Hệ số nhiệt độ ẩm, được nêu trong Datasheet của HS1101 thể hiện sự ảnh hưởng của nhiệt độ tới độ ẩm RH/oC
0.0762: Hệ số độ ẩm (bạn có thể tìm hệ số này trên từng phân vùng tần số, khi đó độ ẩm đo được càng chính xác)
Các hệ số chuẩn, RHR, F, T là các tham số khi bạn dùng sensor có độ chính xác cao hơn HS1101


0 bình luận


Bình luận

Lưu ý: Các bình luận phải được duyệt trước khi được hiển thị.


Cũ hơn Mới hơn