สารบัญ:
- ขั้นตอนที่ 1: เตรียมอุปกรณ์ของคุณ
- ขั้นตอนที่ 2: การปรับเทียบสองจุด
- ขั้นตอนที่ 3: ใช้คุณค่าที่คุณได้รับในทางที่ถูกต้อง
วีดีโอ: การปรับเทียบเซ็นเซอร์ DS18B20 ด้วย Arduino UNO: 3 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
การปฏิเสธความรับผิด:
อุปกรณ์ที่คุณเห็นในภาพถูกใช้ในโครงการอื่นเป็นเทอร์โมสตัทสำหรับกระบวนการพัฒนาฟิล์ม คุณสามารถหาโครงการนั้นได้ที่นี่ ในการปรับเทียบเซ็นเซอร์ หรือมากกว่านั้น คุณจะต้องมีสิ่งที่คุณจะได้พบในโปรเจ็กต์นี้ ไม่มีอะไรมากไปกว่านั้น และมันก็ค่อนข้างเรียบง่ายเช่นกัน! ไปกันเถอะ!
ขั้นตอนที่ 1: เตรียมอุปกรณ์ของคุณ
นี่คือรายการสิ่งที่คุณต้องการ:
- Arduino UNO (หรือ MEGA)
- เซ็นเซอร์ DS18B20
- 4kOhm - ความต้านทาน 5kOhm (ฉันใช้ 5k1Ohm)
- หน้าจอ LCD สำหรับอ่านค่า (คุณยังสามารถใช้แล็ปท็อปและอ่านบนจอภาพแบบอนุกรมได้)
- ภาพร่างที่ใช้เซ็นเซอร์และแสดงค่าอย่างใด
ก่อนอื่นคุณต้องเชื่อมต่อโมดูลและเซ็นเซอร์กับคอนโทรลเลอร์ของคุณ ฉันจะปล่อยให้ส่วนที่ซับซ้อนของ 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 หรือเซ็นเซอร์อื่นๆ ที่คุณจะใช้แล้ว! มีความสุข!
แนะนำ:
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: 8 ขั้นตอน
วิธีการตั้งค่า OSMC ด้วย Hyperion บน Raspberry Pi ด้วย WS2812b Led Strip: บางครั้งฉันพูดภาษาอังกฤษได้ดีมาก บางครั้งก็ไม่มี… สิ่งแรกเลย นี่เป็นการสอนครั้งแรกของฉันและภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน ดังนั้นโปรดอย่ากดดันฉันมากเกินไป นี่จะไม่เกี่ยวกับวิธีการสร้างเฟรมที่ง่าย มันเกี่ยวกับการติดตั้ง
รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino: 5 ขั้นตอน
รับหมายเลขประจำเครื่องของ DS18B20 ด้วย Arduino: นี่คือคำแนะนำโดยย่อเกี่ยวกับวิธีการรับหมายเลขซีเรียลของเซ็นเซอร์อุณหภูมิ 1 สาย DS18B20 แบบ 1 เส้น ซึ่งสะดวกสำหรับโครงการที่ต้องใช้เซ็นเซอร์หลายตัวสิ่งที่คุณต้องการ: Arduino 5v ( UNO, Mega, Pro Mini ฯลฯ) - Arduino UNO R3 - AliExpre
วิธีตั้งโปรแกรม Arduino Pro Mini ด้วย Arduino Uno: 4 ขั้นตอน
วิธีเขียนโปรแกรม Arduino Pro Mini ด้วย Arduino Uno: ฉันเขียนสิ่งนี้เป็นส่วนหนึ่งของโครงการอื่น แต่แล้วฉันก็ตัดสินใจใช้ Pro Micro ซึ่งสามารถตั้งโปรแกรมได้โดยตรงจากแล็ปท็อป อย่างไรก็ตาม นี่อาจมีประโยชน์สักวันหนึ่ง (หรือสำหรับใครบางคน) ดังนั้น ฉันจะทิ้งมันไว้ที่นี่
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: 9 ขั้นตอน
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: ในรูปแรก เรามี Arduino และเรียกว่า "Arduino Uno"ในรูปที่สอง เรามี Arducam และเรียกว่า "Arducam OV2640 มินิ 2MP"พร้อมกับภาพที่สอง มีวัสดุที่คุณต้อง
การควบคุม LED Matrix Array ด้วย Arduino Uno (หน้าหุ่นยนต์ที่ขับเคลื่อนด้วย Arduino): 4 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมอาร์เรย์เมทริกซ์ LED ด้วย Arduino Uno (หน้าหุ่นยนต์ขับเคลื่อนด้วย Arduino): คำแนะนำนี้แสดงวิธีควบคุมอาร์เรย์ของเมทริกซ์ LED 8x8 โดยใช้ Arduino Uno คู่มือนี้อาจใช้เพื่อสร้างการแสดงผลที่เรียบง่าย (และค่อนข้างถูก) สำหรับโครงการของคุณเอง วิธีนี้ทำให้คุณสามารถแสดงตัวอักษร ตัวเลข หรือแอนิเมชั่นที่กำหนดเอง