มีเซ็นเซอร์วัดความชื้นและอุณหภูมิต่างๆเช่น LM35. บางโมดูลสร้างขึ้นเพื่อใช้กับ Arduino โดยเฉพาะ แต่โดยทั่วไปแล้วจะวัดอุณหภูมิแห้งนั่นคืออุณหภูมิของอากาศ แต่มีรูปแบบที่เป็นรูปธรรมที่ใช้งานได้ วัดอุณหภูมิในของเหลวและเรียกว่า DS18B20. ความไม่ชอบมาพากลที่อาจมีประโยชน์สำหรับโครงการ DIY ที่แปลกใหม่กว่าของคุณซึ่งคุณจะเล่นกับของเหลวบางประเภทที่คุณจำเป็นต้องรู้พารามิเตอร์นี้
จริงๆแล้ว DS18B20 ไม่เพียง แต่วัดอุณหภูมิภายในของเหลวเท่านั้น แต่ยังมีประโยชน์อย่างมากในการวัดอุณหภูมิด้วย สภาพแวดล้อมที่ชื้นและภายใต้ของเหลวบางชนิด. ดังนั้นคุณยังสามารถใช้เพื่อวัดอุณหภูมิของอากาศได้หากสภาพแวดล้อมมีความชื้นค่อนข้างมาก และอย่างที่บอกไปว่าคุณสมบัติของการจุ่มลงในของเหลวเพื่อวัดอุณหภูมิเป็นหนึ่งในคุณสมบัติที่ทำให้ใช้งานได้จริง
DS18B20 คืออะไร
ฉันคิดว่ามันค่อนข้างชัดเจนแล้วมันเป็นเซ็นเซอร์อิเล็กทรอนิกส์ที่สามารถวัดอุณหภูมิของตัวกลางที่เป็นก๊าซหรือของเหลวได้ นอกจากนี้ยังมี แพ็คเกจหรือแพ็คเกจต่างๆของ DS18B20เช่นพื้นฐานที่คุณเห็นในภาพหลักหรือยังสามารถรวมเข้ากับ PCBs, โพรบใต้น้ำเป็นต้น สำหรับโครงการของคุณคุณควรเลือกรูปแบบที่เหมาะสมที่สุดตามสิ่งที่คุณต้องการ
ตัวอย่างเช่นนอกเหนือจาก TO-92 ทั่วไปแล้วยังมี microSOP อาจรวมเข้าด้วยกัน กับ Arduino ที่เหมาะสมที่สุดคือ TO-92 เนื่องจากมีหมุดสามตัวจึงง่ายต่อการเสียบเข้ากับเขียงหั่นขนมเพื่อเชื่อมต่อ
pinout
El DS18B20 พินเอาต์ ง่ายต่อการระบุ ตัวอย่างเช่นการอ้างอิงถึงแพ็คเกจ Dallas TO-92 ซึ่งเป็นที่นิยมมากที่สุดแห่งหนึ่งคุณจะเห็นได้ว่ามีหมุดสามตัว หากคุณวางจากด้านหน้านั่นคือโดยให้ส่วนโค้งมนกลับมาและมองไปที่ใบหน้าแบนที่มีคำจารึกปรากฏขึ้นหมุดทางด้านซ้ายของคุณคือ 1 และอันที่อยู่ทางขวาของคุณคือ 3 ดังนั้น 1 จึงเป็นของ GND หรือกราวด์ 2 เป็นข้อมูลและ 3 สำหรับแรงดันไฟฟ้า
ที่นี่เราต้องบอกว่า คุณค่าที่คุณควรรู้:
- พิน 1: คุณต้องเชื่อมต่อกับพิน GND ของ Arduino นั่นคือถึง 0v
- พิน 2: พินนี้คือ DQ หรือข้อมูลซึ่งจะส่งอุณหภูมิที่เซ็นเซอร์วัดไปยัง Arduino ผ่านโปรโตคอลเฉพาะที่เรียกว่า 1-Wire และจะต้องมีไลบรารีและฟังก์ชันพิเศษสำหรับ Arduino IDE ที่จะอนุญาตให้ใช้ขา Arduino เพียงอันเดียวในการเชื่อมต่อเซ็นเซอร์หลายตัวด้วยโปรโตคอลนี้ ...
- Pin 3: สามารถใช้พลังงานได้ตั้งแต่ 3 ถึง 5,5v ดังนั้นคุณจึงสามารถเชื่อมต่อกับเอาต์พุต 5v ของ Arduino ได้
DS18B20 ลักษณะทางเทคนิคและเอกสารข้อมูล
เช่นเคยก็คือ น่าสนใจที่จะทราบลักษณะทางเทคนิค ของเซ็นเซอร์เพื่อให้ทราบว่ามันทำงานอย่างไรเพื่อไม่ให้เกิดความเสียหายและเหนือสิ่งอื่นใดเพื่อให้เรารู้ว่าขีด จำกัด การวัดของมันอยู่ที่ใดเนื่องจากหากค่าที่เราต้องการวัดไม่ได้อยู่ระหว่างค่าเหล่านี้จะไม่ช่วยให้เราและ คุณควรมองหาทางเลือกอื่น
ในการดำเนินการนี้ควรดาวน์โหลดไฟล์ เอกสารข้อมูลผู้ผลิตเช่นเดียวกับในดัลลัสนั่นเอง คุณสามารถดูได้ที่นี่ คุณจะพบข้อมูลที่จำเป็นทั้งหมดที่นั่น และจำไว้ว่าแม้ว่า DS18B20 ทั้งหมดอาจจะคล้ายกัน แต่คุณอาจพบการเปลี่ยนแปลงบางอย่างขึ้นอยู่กับผู้ผลิตหรือแพ็คเกจ ...
แต่โดยไม่คำนึงถึงนิสัยใจคอนี่คือบางส่วน ข้อมูลทางเทคนิคพื้นฐาน:
- ช่วงอุณหภูมิ: -55 ถึง125ºCดังนั้นจึงสามารถวัดเป็นก๊าซหรือของเหลวที่อุณหภูมิต่ำมากและสูงได้ด้วย
- ข้อผิดพลาด: DS18B20 มีความไวต่อเสียงรบกวนภายนอกหรือสิ่งรบกวนที่สามารถให้ค่าที่ผิดพลาดในการวัด ขอบของข้อผิดพลาดคือบวกลบ2ºCแม้ว่าจะอยู่ที่อุณหภูมิระหว่าง-10ºCถึง85ºCนั่นคือเมื่อเราไม่ได้ใกล้ถึงขีด จำกัด มันอาจจะแค่ครึ่งองศา
- ความละเอียด: คุณสามารถทำงานกับความละเอียดหลายรูปแบบหรือรูปแบบเล็ก ๆ น้อย ๆ ที่คุณสามารถตรวจจับได้ด้วยหมุดอะนาล็อก Arduino รองรับ 9 บิต 10 บิต 11 บิตและ 12 บิต (ค่าเริ่มต้น) นั่นคือสามารถวัดได้ตั้งแต่ครึ่งถึงครึ่งองศาจากหนึ่งในสี่ถึงหนึ่งในสี่องศาจาก 0,125 ถึง0,125ºCหรือตั้งแต่0,0625ºCตามลำดับ คุณสามารถแก้ไขการเขียนโปรแกรมนี้ได้โดยใช้รหัสโปรแกรม
- แรงดันไฟฟ้า: 3 ถึง 5,5v
- ราคา: 1 ถึง 3 €
บูรณาการกับ Arduino
ถึงแม้ว่าจะมี วิธีต่างๆในการเชื่อมต่อสิ่งที่เหมาะสมที่สุดคือสิ่งที่คุณเห็นในแผนภาพนี้ มันค่อนข้างง่ายด้วยพิน GND ในการเชื่อมต่อที่สอดคล้องกันของบอร์ด Arduino แหล่งจ่ายไฟจะเหมือนกันจากนั้นข้อมูลไปยังอะนาล็อก Arduino ที่คุณเลือกไว้ในรหัสการเขียนโปรแกรมของคุณใน Arduino IDE แต่ก็เป็นการดีที่จะตั้งค่าตัวต้านทานแบบดึงขึ้น 4,7k (หากระยะห่างของสายเคเบิลโพรบเซ็นเซอร์มากกว่าความต้านทานควรจะต่ำลงเช่น 5m ที่ 3,3k สำหรับ 10 จาก 2,2, XNUMXk, ... ) สำหรับพินข้อมูลจึงทำให้มันสูงอยู่เสมอ
สำหรับ การเขียนโปรแกรมใน Arduino IDE และการทำงานร่วมกันที่ดีกับ DS18B20 และโปรโตคอลที่เฉพาะเจาะจงนั้นขอแนะนำให้คุณดาวน์โหลดไลบรารี ดัลลัสอุณหภูมิ y OneWire จากสิ่งแวดล้อม และรหัสฐานอาจเป็นตัวอย่างที่ฉันแสดง:
#include <OneWire.h> #include <DallasTemperature.h> // Pin donde se conecta el bus 1-Wire (DQ) const int pinDatosDQ = 9; // Instancia a las clases OneWire y DallasTemperature OneWire oneWireObjeto(pinDatosDQ); DallasTemperature sensorDS18B20(&oneWireObjeto); void setup() { // Iniciamos la comunicación serie a 9600 baudios Serial.begin(9600); // Iniciamos el bus 1-Wire del sensor sensorDS18B20.begin(); } void loop() { // Indicamos que tome la temperatura Serial.println("Midiendo temperatura"); sensorDS18B20.requestTemperatures(); // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire) Serial.print("La temperatura del sensor 0 es de: "); Serial.print(sensorDS18B20.getTempCByIndex(0)); Serial.println(" C"); Serial.print("La temperatura del sensor x es de: "); Serial.print(sensorDS18B20.getTempCByIndex(1)); Serial.println(" ºC"); delay(1000); }
ข้อมูลมากกว่านี้ - คู่มือการเขียนโปรแกรม Arduino (PDF ฟรี)