Mục lục:

Hiệu chuẩn cảm biến DS18B20 với Arduino UNO: 3 bước (có hình ảnh)
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO: 3 bước (có hình ảnh)

Video: Hiệu chuẩn cảm biến DS18B20 với Arduino UNO: 3 bước (có hình ảnh)

Video: Hiệu chuẩn cảm biến DS18B20 với Arduino UNO: 3 bước (có hình ảnh)
Video: Sử dụng cảm biến nhiệt độ DS18B20 với Arduino | How To Use DS18B20 Water Proof Temperature Sensor 2024, Tháng mười một
Anonim
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO
Hiệu chuẩn cảm biến DS18B20 với Arduino UNO

TUYÊN BỐ TỪ CHỐI:

Thiết bị bạn nhìn thấy trong ảnh được sử dụng trong một dự án khác làm Bộ điều nhiệt cho quá trình phát triển phim. Bạn có thể tìm thấy dự án đó ở đây. Để hiệu chỉnh một cảm biến, hoặc nhiều hơn một cảm biến, bạn sẽ chỉ cần những gì bạn tìm thấy trong dự án này, không cần thêm gì nữa và nó cũng khá cơ bản! Đi nào!

Bước 1: Chuẩn bị thiết bị của bạn

Chuẩn bị thiết bị của bạn
Chuẩn bị thiết bị của bạn

Đây là danh sách những thứ bạn cần:

  1. Arduino UNO (hoặc MEGA)
  2. (Các) cảm biến DS18B20
  3. 4kOhm - kháng 5kOhm (tôi đã sử dụng 5k1Ohm)
  4. Màn hình LCD để đọc các giá trị (bạn cũng có thể sử dụng máy tính xách tay và chỉ cần đọc chúng trên màn hình nối tiếp)
  5. Bản phác thảo sử dụng cảm biến và hiển thị bằng cách nào đó các giá trị

Trước hết, bạn phải kết nối các mô-đun và cảm biến với bộ điều khiển của mình. Tôi sẽ để lại phần phức tạp của màn hình LCD cho bạn tìm kiếm trên web và tôi sẽ chỉ cho bạn cách kết nối cảm biến.

Thông thường những cảm biến đó đi kèm với ba màu dây: Đen, Đỏ, Vàng. Hai cái đầu tiên dành cho năng lượng và cái thứ ba dành cho dữ liệu. Kết nối màu đen với GNN, màu đỏ với Vcc (5V) và màu vàng trên đầu vào tương tự, giả sử A0.

Bây giờ kết nối điện trở giữa màu vàng và màu đỏ để hoàn thành các kết nối.

Cắm luôn cả màn hình LCD (tôi đề xuất một màn hình LCD 16x2 đơn giản với kết nối i2c để chỉ sử dụng tổng cộng 4 dây) và bạn đã hoàn tất việc lắp dây và cáp.

Bây giờ bản phác thảo siêu đơn giản:

#include "OneWire.h"

#include "DallasTempeosystem.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Cảm biến nhiệt độ Dallas1 (& ourWire1); #include "LiquidCrystal_I2C.h"

Màn hình LCD LiquidCrystal_I2C (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); LCD đèn nền(); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTempe Nhiệt độ (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Cảm biến 1"); lcd.print (RawValue, 1); }

Như bạn có thể thấy, chúng tôi sử dụng thư viện Nhiệt độ Dallas và màn hình LCD có kết nối i2c.

Trong quá trình thiết lập, chúng tôi loại bỏ màn hình LCD và cảm biến và trong vòng lặp, chúng tôi chỉ cần yêu cầu nhiệt độ và lưu trữ giá trị bên trong biến RawValue để hiển thị trên màn hình LCD.

Nếu bạn muốn đơn giản hơn, chỉ cần sử dụng màn hình nối tiếp với bản phác thảo sau

#include "Wire.h" #include "OneWire.h" #include "DallasTempeosystem.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Cảm biến nhiệt độ Dallas1 (& ourWire1);

float RawValue = 0;

void setup () {

chậm trễ (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTempe Nhiệt độ (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

Bây giờ hãy theo tôi vào cốt lõi của dự án để hiệu chỉnh cảm biến.

Bước 2: Hiệu chuẩn hai điểm

Hiệu chuẩn hai điểm
Hiệu chuẩn hai điểm
Hiệu chuẩn hai điểm
Hiệu chuẩn hai điểm
Hiệu chuẩn hai điểm
Hiệu chuẩn hai điểm

Những điều cần biết trước

Để hiệu chỉnh cảm biến nhiệt, bạn phải đo một thứ mà bạn biết nhiệt độ. Cách thực hiện đơn giản tại nhà là dùng nước sôi và một bồn nước đá tan hay còn gọi là tắm “tam thất”. Trong những trường hợp đó, chúng ta biết rằng nước sôi ở 100 ° C trên mực nước biển. Hãy nhớ rằng để thực hiện một phép đo chính xác, bạn nên biết độ cao của mình và tính toán nhiệt độ sôi thích hợp ở đó.

Bạn có thể kiểm tra nó ở đây!

Thành thật mà nói, bạn nên kiểm tra áp suất khí quyển chứ không phải độ cao. Nhưng cách đó là đủ chính xác.

Bể ba điểm hay còn gọi là bể nước đá là nhiệt độ mà nước tồn tại ở ba trạng thái rắn, lỏng và khí, nhiệt độ đó là 0, 01 ° C. Chúng tôi sẽ sử dụng, để đơn giản hóa, 0 ° C.

Biết giá trị mà cảm biến đọc và giá trị phải có, chúng tôi có thể sửa đổi giá trị thô của DS18B20 thành một giá trị chính xác hơn.

LƯU Ý: bạn cũng có thể sử dụng nhiều nhiệt độ hơn để hiệu chỉnh cảm biến chỉ cần đặt nó vào một số chất khác mà bạn biết điểm sôi như Ether (35 ° C), Pentane (36, 1 ° C), Acetone (56 ° C) hoặc Ethanol (78, 37 ° C), nhưng những chất sôi đó tạo ra khí rất dễ cháy! Vì vậy, đừng làm điều đó!

Nước sôi:

Cho một ít nước vào nồi và đun đến khi sôi (bọt khí phát triển và nước tự sôi). Đặt cảm biến của bạn ở nơi nó không chạm vào bất cứ thứ gì ngoài nước. Chờ một vài phút và đọc màn hình LCD hoặc màn hình nối tiếp

Nhiệt độ phải giữ nguyên trong ít nhất một phút. Nếu vậy, hãy ghi giá trị đó xuống. Đó là giá trị: RawHigh của bạn.

Phòng tắm ba điểm:

Bây giờ lấy một cái ly lớn (bạn không cần bất cứ thứ gì lớn cũng như không cần chậu) và đổ đầy đá đến đường viền. Cố gắng sử dụng đá viên có kích thước nhỏ. Bây giờ đổ nước lạnh vào 80% ly. Đổ đầy đá nếu cần gạt cố gắng đi xuống.

Bây giờ, hãy đặt cảm biến của bạn vào bên trong vật chứa nước / đá và đợi một phút rưỡi. Đọc nhiệt độ phải giữ nguyên ít nhất trong 30 giây. Nếu vậy, hãy viết nó ra, rằng đó là giá trị RawLow của bạn.

Bước 3: Sử dụng các giá trị bạn nhận được một cách đúng đắn

Vì vậy, bây giờ bạn đã có một số giá trị quan trọng:

  • RawHigh
  • RawLow
  • Tham khảo
  • ReferenceLow

Giá trị tham chiếu rõ ràng là 99,9 ° C đối với nước sôi (ở độ cao của tôi là 22m) và 0 ° C đối với bể nước đá đang tan chảy. Bây giờ hãy tính toán các phạm vi cho các giá trị đó:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Bây giờ bạn đã sẵn sàng sử dụng cảm biến đó trong bất kỳ dự án nào khác và chắc chắn rằng nó sẽ cung cấp cho bạn một phép đo phù hợp. Thế nào? Sử dụng giá trị bạn có được ở đây trong dự án mà bạn sẽ tạo ra với cảm biến đó.

Trong dự án tương lai của bạn, bạn sẽ phải sử dụng các giá trị mà bạn đọc được trong dự án này và tôi khuyên bạn nên làm điều đó bằng cách sử dụng các tên giống như tôi đã sử dụng ở đây.

Khai báo các biến trước phần void setup () giống như sau:

float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Hơn nữa, mỗi khi bạn sử dụng cảm biến, bạn có thể sử dụng công thức sau để tính Giá trị sửa chữa:

float CoriledValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue rõ ràng là giá trị đọc của cảm biến.

Đó là nó!

Bây giờ bạn đã biết cách hiệu chỉnh cảm biến DS18B20 của mình hoặc bất kỳ cảm biến nào khác mà bạn sẽ sử dụng! Chúc vui vẻ!

Đề xuất: