สารบัญ:

การปรับเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO: 3 ขั้นตอน (พร้อมรูปภาพ)
การปรับเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การปรับเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การปรับเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO: 3 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How to use DS18B20 Digital Temperature sensor with Arduino and View on LCD I2C | DS18B20 sensor 2024, กรกฎาคม
Anonim
การสอบเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO
การสอบเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO
การสอบเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO
การสอบเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO
การสอบเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO
การสอบเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO

การปฏิเสธความรับผิด:

อุปกรณ์ที่คุณเห็นในภาพถูกใช้ในโครงการอื่นเป็นเทอร์โมสตัทสำหรับกระบวนการพัฒนาฟิล์ม คุณสามารถหาโครงการนั้นได้ที่นี่ ในการปรับเทียบเซ็นเซอร์ หรือมากกว่านั้น คุณจะต้องมีสิ่งที่คุณจะได้พบในโปรเจ็กต์นี้ ไม่มีอะไรมากไปกว่านั้น และมันก็ค่อนข้างเรียบง่ายเช่นกัน! ไปกันเถอะ!

ขั้นตอนที่ 1: เตรียมอุปกรณ์ของคุณ

เตรียมอุปกรณ์ของคุณ
เตรียมอุปกรณ์ของคุณ

นี่คือรายการสิ่งที่คุณต้องการ:

  1. Arduino UNO (หรือ MEGA)
  2. เซ็นเซอร์ DS18B20
  3. 4kOhm - ความต้านทาน 5kOhm (ฉันใช้ 5k1Ohm)
  4. หน้าจอ LCD สำหรับอ่านค่า (คุณยังสามารถใช้แล็ปท็อปและอ่านบนจอภาพแบบอนุกรมได้)
  5. ภาพร่างที่ใช้เซ็นเซอร์และแสดงค่าอย่างใด

ก่อนอื่นคุณต้องเชื่อมต่อโมดูลและเซ็นเซอร์กับคอนโทรลเลอร์ของคุณ ฉันจะปล่อยให้ส่วนที่ซับซ้อนของ LCD ให้คุณค้นหาบนเว็บ และฉันจะบอกวิธีเชื่อมต่อเซ็นเซอร์ให้คุณ

โดยปกติแล้ว เซนเซอร์เหล่านั้นจะมาพร้อมกับสายไฟสามสี: ดำ แดง เหลือง สองอันแรกมีไว้สำหรับพลังงาน และอันที่สามมีไว้สำหรับข้อมูล เชื่อมต่อสีดำกับ GNN สีแดงกับ Vcc (5V) และสีเหลืองบนอินพุตแบบอะนาล็อก สมมติว่า A0

ตอนนี้เชื่อมต่อความต้านทานระหว่างสีเหลืองและสีแดงเพื่อให้การเชื่อมต่อสมบูรณ์

เสียบจอ LCD ด้วย (ฉันแนะนำจอ LCD ขนาด 16x2 แบบธรรมดาพร้อมการเชื่อมต่อ i2c เพื่อใช้สายไฟทั้งหมด 4 เส้น) เท่านี้คุณก็ใช้สายไฟและสายเคเบิลเสร็จแล้ว

ตอนนี้ร่างที่ง่ายมาก:

#รวม "OneWire.h"

#รวม "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasTemperature sensor1(&ของเราWire1); #รวม "LiquidCrystal_I2C.h"

LiquidCrystal_I2C จอแอลซีดี (0x27, 16, 2); ลอย RawValue =0;

การตั้งค่าเป็นโมฆะ () { lcd.init (); LCD.backlight(); เซ็นเซอร์1.begin(); เซ็นเซอร์1.setResolution(11); } วงเป็นโมฆะ () { sensor1.requestTemperatures (); float RawValue = เซ็นเซอร์1.getTempCByIndex(0); lcd.setCursor(0, 0); lcd.print("สัมผัส 1 "); lcd.print(RawValue, 1); }

อย่างที่คุณเห็น เราใช้ไลบรารี Dallas Temperature และหน้าจอ LCD พร้อมการเชื่อมต่อ i2c

ในการตั้งค่า เราเริ่มต้น LCD และเซ็นเซอร์ และในวงจร เราเพียงแค่ขออุณหภูมิและเก็บค่าไว้ในตัวแปร RawValue เพื่อแสดงบน LCD

หากคุณต้องการทำให้มันง่ายขึ้น เพียงใช้จอภาพอนุกรมกับภาพร่างต่อไปนี้

#รวม "Wire.h"#รวม "OneWire.h" #รวม "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasTemperature sensor1(&ของเราWire1);

ลอย RawValue =0;

การตั้งค่าเป็นโมฆะ (){

ล่าช้า (1000); Serial.begin(9600); เซ็นเซอร์1.begin(); เซ็นเซอร์1.setResolution(11);

}

วงเป็นโมฆะ () { sensor1.requestTemperatures (); float RawValue = เซ็นเซอร์1.getTempCByIndex(0); Serial.print("ความรู้สึก 1"); Serial.println (RawValue, 1); }

ตอนนี้ติดตามฉันในแกนหลักของโครงการเพื่อปรับเทียบเซ็นเซอร์

ขั้นตอนที่ 2: การปรับเทียบสองจุด

การสอบเทียบสองจุด
การสอบเทียบสองจุด
การสอบเทียบสองจุด
การสอบเทียบสองจุด
การสอบเทียบสองจุด
การสอบเทียบสองจุด

สิ่งที่ต้องรู้ก่อน

ในการสอบเทียบเทอร์โมเซนเซอร์ คุณต้องวัดค่าบางอย่างที่คุณทราบอุณหภูมิ วิธีง่ายๆ ในการทำที่บ้านคือการใช้น้ำเดือดและอ่างน้ำแข็งละลาย หรือที่เรียกว่าอ่าง "สามจุด" ในกรณีเหล่านั้น เราทราบดีว่าน้ำเดือดที่ 100°C ที่ระดับน้ำทะเล โปรดจำไว้ว่าเพื่อให้วัดได้อย่างแม่นยำ คุณควรทราบระดับความสูงและคำนวณอุณหภูมิจุดเดือดที่เหมาะสมที่นั่น

คุณสามารถตรวจสอบได้ที่นี่!

ความจริงแล้วคุณควรตรวจสอบความกดอากาศไม่ใช่ระดับความสูง แต่ทางนั้นก็แม่นพอสมควร

อ่างสามจุดหรืออ่างน้ำแข็งคืออุณหภูมิที่มีน้ำอยู่ในสถานะของแข็ง ของเหลว และก๊าซสามสถานะ คือ 0, 01°C เราจะใช้, เพื่อลดความซับซ้อน, 0 °C

เมื่อทราบค่าที่เซ็นเซอร์อ่านและค่าที่ควรจะเป็น เราสามารถปรับเปลี่ยนค่าดิบของ DS18B20 ให้ถูกต้องมากขึ้นได้

หมายเหตุ: คุณสามารถใช้อุณหภูมิมากขึ้นในการปรับเทียบเซ็นเซอร์ได้ เพียงแค่ใส่ในสารอื่นๆ ที่คุณทราบจุดเดือด เช่น อีเธอร์ (35 °C), เพนเทน (36, 1°C), อะซิโตน (56°C) หรือ เอทานอล (78, 37°C) แต่สารที่เดือดนั้นผลิตก๊าซไวไฟสูง! ดังนั้นอย่าทำอย่างนั้น!

น้ำเดือด:

ใส่น้ำในหม้อแล้วตั้งไฟจนเดือด (ฟองแก๊สกำลังก่อตัวและน้ำก็กวนเอง) จุ่มเซ็นเซอร์ของคุณในที่ที่ไม่สัมผัสสิ่งใดนอกจากน้ำ รอสองสามนาทีแล้วอ่าน LCD หรือจอภาพอนุกรม

อุณหภูมิควรคงเดิมเป็นเวลาอย่างน้อยหนึ่งนาที ถ้าใช่ ให้เขียนค่านั้นลงไป นั่นคือของคุณ: ค่า RawHigh

อ่างอาบน้ำสามจุด:

ตอนนี้เอาแก้วใบใหญ่ (คุณไม่ต้องการอะไรขนาดใหญ่หรือหม้อ) แล้วเติมก้อนน้ำแข็งที่ขอบ ลองใช้ก้อนน้ำแข็งขนาดเล็ก ตอนนี้เติม 80% ของแก้วด้วยน้ำเย็น เติมน้ำแข็งถ้าคันโยกพยายามลงไป

ตอนนี้ใส่เซ็นเซอร์ของคุณไว้ในสิ่งที่เป็นน้ำ/น้ำแข็ง แล้วรอหนึ่งนาทีครึ่ง อ่านอุณหภูมิที่ควรจะคงเดิมเป็นเวลาอย่างน้อย 30 วินาที ถ้าใช่ ให้จดไว้ว่าเป็นค่า RawLow ของคุณ

ขั้นตอนที่ 3: ใช้คุณค่าที่คุณได้รับในทางที่ถูกต้อง

ตอนนี้คุณมีค่าสำคัญบางอย่างแล้ว:

  • RawHigh
  • RawLow
  • ข้อมูลอ้างอิงสูง
  • อ้างอิงต่ำ

ค่าอ้างอิงอยู่ที่ 99.9°C สำหรับน้ำเดือด (ที่ระดับความสูง 22 เมตรของฉัน) และ 0°C สำหรับอ่างน้ำแข็งที่กำลังละลาย ตอนนี้คำนวณช่วงสำหรับค่าเหล่านั้น:

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

ตอนนี้คุณพร้อมที่จะใช้เซ็นเซอร์นั้นในโปรเจ็กต์อื่นแล้ว โดยแน่ใจว่าเซ็นเซอร์จะให้การวัดที่ถูกต้องแก่คุณ ยังไง? การใช้ค่าที่คุณได้รับในโปรเจ็กต์นี้ คุณจะสร้างด้วยเซ็นเซอร์นั้น

ในโครงการในอนาคตของคุณ คุณจะต้องใช้ค่าที่คุณอ่านในค่านี้ และฉันขอแนะนำให้ใช้ชื่อเดียวกับที่ฉันใช้ที่นี่

ประกาศตัวแปรก่อนส่วนการตั้งค่าเป็นโมฆะ () ดังนี้:

float RawHigh = 99.6;float RawLow = 0.5;float ReferenceHigh = 99.9;float ReferenceLow = 0;float RawRange = RawHigh - RawLow;float ReferenceRange = ReferenceHigh - ReferenceLow;

ทุกครั้งที่ใช้เซ็นเซอร์ คุณสามารถใช้สูตรต่อไปนี้เพื่อคำนวณค่า CorrectedValue:

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

RawValue คือการอ่านค่าของเซ็นเซอร์อย่างชัดเจน

แค่นั้นแหละ!

ตอนนี้คุณรู้วิธีปรับเทียบเซ็นเซอร์ DS18B20 หรือเซ็นเซอร์อื่นๆ ที่คุณจะใช้แล้ว! มีความสุข!

แนะนำ: