การอ่านค่าจากเซ็นเซอร์ DS18B20 ด้วย Arduino Nano อ่านค่าอุณหภูมิ
Arduino Nano: เป็นบอร์ดไมโครคอนโทรลเลอร์ที่นิยมใช้สำหรับงานอิเล็กทรอนิกส์พื้นฐาน
DS18B20: เซ็นเซอร์วัดอุณหภูมิแบบดิจิทัล ที่มีความแม่นยำสูง สามารถวัดอุณหภูมิได้ในช่วงกว้าง และสามารถต่อเชื่อมกันได้หลายตัวบนสายเดียว
อุปกรณ์ที่จำเป็น
บอร์ด Arduino Nano
เซ็นเซอร์ DS18B20
ตัวต้านทาน 4.7kΩ
บอร์ดขนมปัง (ถ้ามี)
สาย Jumper
แหล่งจ่ายไฟ (ถ้าไม่ใช้จาก Arduino power) usb ต่อคอมพิวเตอร์
เชื่อมต่อ DS18B20 กับ Arduino Nano
VDD สีแดง (ขา 1) ของ DS18B20 กับ +5V บน Arduino Nano
GND สีดำ (ขา 3) ของ DS18B20 กับ GND บน Arduino Nano
DQ สีเหลือง(ขา 2) ของ DS18B20 กับ ขาสัญญาณดิจิทัล ของ Arduino Nano D2
ต่อ ต้านทาน 4.7kΩ ระหว่าง DQ และ +5V เพื่อใช้เป็น pull-up
ต้านทาน 4.7kΩ ระหว่าง DQ และ +5V เพื่อใช้เป็น pull-up คืออะไร
คำอธิบายง่ายๆ:
คิดว่าวงจรดิจิทัลเป็นเหมือนถนนที่มีสัญญาณไฟจราจร สัญญาณไฟเหล่านี้จะบอกให้ข้อมูลวิ่งไปตามเส้นทางที่ถูกต้อง ต้านทาน 4.7kΩ ที่เชื่อมระหว่าง DQ และ +5V
นี้ก็เหมือนกับสัญญาณไฟจราจรเล็ก ๆ ที่คอยบอกให้สัญญาณข้อมูล (ที่วิ่งอยู่ในสาย DQ) มีทิศทางที่ชัดเจน
ทำไมต้องใช้ pull-up resistor:
ป้องกันสัญญาณลอย: ถ้าไม่มีต้านทานตัวนี้ สัญญาณในสาย DQ อาจจะ "ลอย" ไม่รู้ว่าจะไปทางไหน ซึ่งอาจทำให้เกิดปัญหาในการทำงานของวงจร
กำหนดระดับแรงดันเริ่มต้น: ต้านทานตัวนี้จะดึงแรงดันในสาย DQ ให้ไปที่ +5V เมื่อไม่มีสัญญาณใดๆ มาสั่งให้เปลี่ยนแปลง ทำให้เราสามารถกำหนดค่าเริ่มต้นของสัญญาณได้
ค่า 4.7kΩ หมายถึงอะไร:
ค่าต้านทาน: 4.7kΩ คือค่าความต้านทานไฟฟ้าของตัวต้านทานตัวนี้ ยิ่งค่าสูง แรงดันที่ดึงขึ้นไปก็จะช้าลง แต่จะช่วยลดการกินกระแสไฟฟ้า
ทำไมต้อง 4.7kΩ: ค่านี้เป็นค่าที่นิยมใช้กันทั่วไปในวงจรดิจิทัล เพราะมันเป็นค่าที่เหมาะสมกับการใช้งานส่วนใหญ่
แต่ค่าที่ใช้จริงอาจแตกต่างกันไป ขึ้นอยู่กับลักษณะของวงจรและอุปกรณ์ที่ใช้
สรุป:
ต้านทาน 4.7kΩ ที่เชื่อมระหว่าง DQ และ +5V ทำหน้าที่เหมือนสัญญาณไฟจราจรเล็กๆ ที่คอยควบคุมทิศทางของสัญญาณข้อมูล ช่วยให้วงจรทำงานได้อย่างถูกต้องและมีเสถียรภาพ
การติดตั้งไลบรารี DS18B20 ตัววัดค่าอุณหภูมิจากเซ็นเซอร์ ใน Arduino IDE:
เปิด Arduino IDE
ไปที่เมนู Sketch > Include Library > Manage Libraries...
ค้นหา "OneWire" และ "DallasTemperature" ใน Library Manager
ติดตั้งทั้งสองไลบรารี
โค้ดตัวอย่าง:
#include <OneWire.h>
#include <DallasTemperature.h>
// ตั้งค่าขาเชื่อมต่อ
#define ONE_WIRE_BUS 2
// เริ่มต้น OneWire และ DallasTemperature
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600); // เริ่มต้น Serial Monitor
sensors.begin(); // เริ่มต้นเซ็นเซอร์
}
void loop() {
sensors.requestTemperatures(); // ขอค่าอุณหภูมิจากเซ็นเซอร์
float temperature = sensors.getTempCByIndex(0); // อ่านค่าที่ได้ (Celsius)
float ftemperature = sensors.getTempFByIndex(0); // อ่านค่าที่ได้ (Farenheit)
Serial.print("Temperature C: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Temperature F: ");
Serial.print(ftemperature);
Serial.println(" °F");
delay(1000); // รอ 1 วินาทีก่อนที่จะอ่านค่าใหม่
}
Relate Link :
Ep06 Arduino nano r4ch hc05 Ardroid App https://youtu.be/AZI5X30LMXw
Ep011 Arduino uno r3 วัดอุณหภูมิด้วย และวิธีการติดตั้งไลบราลี่ DS18R20 https://youtu.be/eMiYKM6RVno
ความคิดเห็น
แสดงความคิดเห็น