สารบัญ:

รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino: 5 ขั้นตอน
รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino: 5 ขั้นตอน

วีดีโอ: รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino: 5 ขั้นตอน

วีดีโอ: รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino: 5 ขั้นตอน
วีดีโอ: ออกแบบระบบวัดอุณหภูมิอย่างง่าย บน Arduino รวมกับ ds1820 2024, พฤศจิกายน
Anonim
รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino
รับหมายเลขซีเรียลของ DS18B20 ด้วย Arduino

นี่คือคำแนะนำโดยย่อเกี่ยวกับวิธีการรับหมายเลขประจำเครื่องของเซ็นเซอร์อุณหภูมิ 1 สาย DS18B20 ของคุณ

ซึ่งสะดวกสำหรับโครงการที่ต้องใช้เซ็นเซอร์หลายตัว

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

  • Arduino 5v (UNO, Mega, Pro Mini ฯลฯ) - Arduino UNO R3 - AliExpress
  • เซ็นเซอร์อุณหภูมิ DS18B20 - AliExpress
  • 4.7k - 1/4w ตัวต้านทาน THT - AliExpress
  • เขียงหั่นขนม - AliExpress - eBay
  • สายจัมเปอร์ - ชายกับชาย - AliExpress
  • คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: เพิ่มไลบรารีที่จำเป็นลงใน Arduino IDE

เพิ่มไลบรารีที่จำเป็นลงใน Arduino IDE
เพิ่มไลบรารีที่จำเป็นลงใน Arduino IDE
  1. เปิด Arduino IDE (ฉันใช้ 1.8.1)
  2. คลิก "ร่าง" -> "รวมไลบรารี" -> "จัดการไลบรารี…"
  3. เลือกแถบค้นหาและพิมพ์ "dallas"
  4. คลิก "DallasTemperature" และคลิก "ติดตั้ง"

หรือคุณสามารถดาวน์โหลด Library ได้จากที่นี่:

ห้องสมุดนี้มีห้องสมุด OnWire

ขั้นตอนที่ 2: ต่อสาย DS18B20

ต่อสาย DS18B20
ต่อสาย DS18B20
ต่อสาย DS18B20
ต่อสาย DS18B20

ใช้ breadboard เชื่อมต่อ +5V, GND และ Digital Pin 2 (พิน 2 ถูกตั้งค่าไว้ในภาพร่างตัวอย่างแล้ว) จาก Arduino โดยใช้จัมเปอร์เขียงหั่นขนม Male to Male

เชื่อมต่อ DS18B20 ขนานกับแถบขั้วต่อ 3x บนเขียงหั่นขนม

  • พิน 1 (GND) -> GND (กราวด์ 0V)
  • พิน 2 (ข้อมูล) -> พินดิจิตอล 2
  • พิน 3 (Vdd) -> +5V

สำหรับโหมดพลังงานปกติให้เชื่อมต่อตัวต้านทาน 4.7K จาก +5V กับสาย Digital Pin 2 บนเขียงหั่นขนม

ลิงก์ต่อไปนี้เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับเซ็นเซอร์อุณหภูมิ 1 สาย DS18B20

www.tweaking4all.com/hardware/arduino/ardu…

ขั้นตอนที่ 3: โหลดภาพร่างตัวอย่าง "เดี่ยว"

โหลดภาพร่างตัวอย่าง
โหลดภาพร่างตัวอย่าง
โหลดภาพร่างตัวอย่าง
โหลดภาพร่างตัวอย่าง

เมื่อคุณมีสายแล้วคุณก็พร้อมที่จะโหลด SketchOpen Arduino IDE ของ Dallas Temperature "เดี่ยว" (ฉันใช้ 1.8.1) คลิก "ไฟล์" -> "ตัวอย่าง" -> "Dallas Temperature" -> "โสด" ฉันเพิ่ม ล่าช้า (5000); ในบรรทัดที่ 103 เพื่อให้เวลาฉันคัดลอกหมายเลขซีเรียลเลือกแบบฟอร์มบอร์ดที่เหมาะสมของคุณ "เครื่องมือ" -> "บอร์ด" เลือกพอร์ตที่เหมาะสมของคุณ "เครื่องมือ" -> "พอร์ต" ตอนนี้ "อัปโหลด" ร่าง "ร่าง" -> "อัปโหลด" คลิก "เครื่องมือ" -> "การตรวจสอบแบบอนุกรม" ตรวจสอบให้แน่ใจว่าอัตราบอดที่ตรงกับของฉันคือ 9600 หากคุณไม่ได้อัปโหลดสเก็ตช์ ให้ตรวจสอบบอร์ด พอร์ต ไดรเวอร์ USB ฯลฯ

ขั้นตอนที่ 4: คัดลอกหมายเลขซีเรียล

คัดลอกหมายเลขซีเรียล
คัดลอกหมายเลขซีเรียล
คัดลอกหมายเลขซีเรียล
คัดลอกหมายเลขซีเรียล

จาก "Serial Monitor" คุณจะเห็นบรรทัดที่ 4 คือ "Device 0 Address: xxxxxxxxxxxxxxxx"

นี่คือหมายเลขซีเรียลของ DS18B20

หากเป็น "0000000000000000" แสดงว่ามีปัญหาในการอ่าน DS18B20 ของคุณ

ไฮไลต์ด้วยเมาส์ของคุณแล้วกด CTRL+C บนแป้นพิมพ์ของคุณ จากนั้นวางใน Notepad

สำหรับโครงการอื่นๆ ของฉัน รหัสของฉันใช้อาร์เรย์ของตัวเลขเหล่านี้ ฉันฟอร์แมตสตริง HEX ใหม่ให้อยู่ในรูปแบบต่อไปนี้

DeviceAddress tempSensorSerial[9]= {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x17,, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x6671, 0x62, 0, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28, 0xFF, 0xFF, 0xFF, 0x42, 0x71, 0x17, 0x04, 0x4C} };

ขั้นตอนที่ 5: เสร็จสิ้น

ที่เสร็จเรียบร้อย
ที่เสร็จเรียบร้อย

ตอนนี้คุณสามารถระบุเซ็นเซอร์อุณหภูมิ 1 สาย DS18B20 แต่ละตัวในรหัสของคุณ และใช้ฟังก์ชันดังนี้:

float getTemperature (ไบต์ j) {

sensors.requestTemperaturesByAddress(tempSensorSerial[j]); เซ็นเซอร์

float tempC = เซ็นเซอร์.getTempC(tempSensorSerial[j]);

ส่งคืน tempC;

}

แนะนำ: