Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Bu DS18B20 1 simli harorat sensorlarining individual seriya raqamlarini olish bo'yicha tezkor qo'llanma.
Bu bir nechta sensorlarni talab qiladigan loyihalar uchun qulay.
Sizga kerak bo'lgan narsalar:
- Arduino 5v (UNO, Mega, Pro Mini va boshqalar) - Arduino UNO R3 - AliExpress - eBay
- Harorat sensori DS18B20 - AliExpress - eBay
- 4.7k - 1/4w THT qarshilik - AliExpress - eBay
- Non paneli - AliExpress - eBay
- Jumper simlari - erkakdan erkakgacha - AliExpress - eBay
- Arduino IDE o'rnatilgan kompyuter
1 -qadam: Arduino IDE -ga kerakli kutubxonani qo'shing
- Arduino IDE -ni oching (men 1.8.1 dan foydalanmoqdaman)
- "Eskiz" -> "Kutubxonani qo'shish" -> "Kutubxonalarni boshqarish …" ni bosing.
- Qidiruv panelini tanlang va "dallas" so'zini kiriting.
- "DallasTemperature" ni bosing va "O'rnatish" ni bosing.
Yoki kutubxonani bu erdan yuklab olishingiz mumkin:
Bu kutubxona OnWire kutubxonasini o'z ichiga oladi.
2 -qadam: DS18B20 simini ulang
Non paneli yordamida +5V, GND va Digital Pin 2 (Pin 2 allaqachon misol eskizda o'rnatilgan) yordamida Erkakdan Erkagacha non taxtali o'tish moslamalari yordamida.
DS18B20 -ni non panelidagi 3x terminal tasmalariga parallel ulang.
- Pin 1 (GND) -> GND (Ground 0V)
- 2 -pin (DATA) -> Raqamli 2 -pin
- 3 -pin (Vdd) -> +5V
Oddiy quvvat rejimi uchun +5V dan 4,7K gacha bo'lgan rezistorni non panelidagi Digital Pin 2 simiga ulang.
Quyidagi havola DS18B20 1 simli harorat sensori uchun ajoyib manba.
www.tweaking4all.com/hardware/arduino/ardu…
3 -qadam: "Yagona" namunaviy eskizni yuklang
Tarmoqqa ulangandan so'ng, siz Dallas haroratini "yagona" SketchOpen Arduino IDE yuklashga tayyormiz (men 1.8.1 dan foydalanmoqdaman) "Fayl" -> "Misollar" -> "Dallas harorati" -> "Yagona" ni bosing. kechikish (5000); 103 -qatorda menga seriya raqamini nusxalashga vaqt berish uchun mos keladigan taxtali shaklini tanlang "Asboblar" -> "Kengash" O'zingizga mos keladigan portni tanlang "Asboblar" -> "Port" Endi "Yuklab oling" "Sketch" -> "Yuklash" eskizini. "Asboblar" -> "Serial monitor" ni bosing, agar men yuklamagan bo'lsangiz, karta, port, USB drayverlari va boshqalarni tekshiring.
4 -qadam: Seriya raqamini nusxalash
"Seriya monitor" dan siz 4 -qatorni ko'rasiz "Qurilma 0 manzili: xxxxxxxxxxxxxxxx"
Bu DS18B20 seriya raqami
Agar "0000000000000000" bo'lsa, DS18B20 -ni o'qishda muammo bor.
Uni sichqoncha bilan ajratib ko'rsatish va klaviaturadagi CTRL+C tugmachalarini bosib Notepad -ga qo'ying
Boshqa loyihalarim uchun mening kodim bu raqamlar qatoridan foydalanadi. Men HEX satrini quyidagi formatga qayta formatladim.
DeviceAddress tempSensorSerial [9] = {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x92, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xF6, 0x6, 6x2, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED 0, {0xED, 0}, 0x42, 0x71, 0x17, 0x04, 0x4C}};
5 -qadam: tugadi
Endi siz har bir DS18B20 1 simli harorat sensori kodini aniqlay olasiz va quyidagi funktsiyadan foydalanishingiz mumkin:
float getTemperature (bayt j) {
sensorlar.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = sensors.getTempC (tempSensorSerial [j]);
qaytish tempC;
}