Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu, DS18B20 1 telli temperatur sensorlarınızın fərdi seriya nömrələrini necə əldə etmək barədə qısa bir bələdçidir.
Bu, çoxlu sensorlar tələb edən layihələr üçün əlverişlidir.
Lazım olan şeylər:
- Arduino 5v (UNO, Mega, Pro Mini və s.) - Arduino UNO R3 - AliExpress - eBay
- Temperatur Sensoru DS18B20 - AliExpress - eBay
- 4.7k - 1/4w Rezistor THT - AliExpress - eBay
- Çörək paneli - AliExpress - eBay
- Jumper telləri - kişidən kişiyə - AliExpress - eBay
- Arduino IDE quraşdırılmış bir kompüter
Addım 1: Lazımi Kitabxananı Arduino IDE -yə əlavə edin
- Arduino IDE açın (1.8.1 istifadə edirəm)
- "Eskiz" -> "Kitabxanaya daxil et" -> "Kitabxanaları İdarə et …" düyməsini basın.
- Axtarış çubuğunu seçin və "dallas" yazın
- "DallasTemperature" düyməsini və "Quraşdır" düyməsini basın.
Alternativ olaraq Kitabxananı buradan yükləyə bilərsiniz:
Bu kitabxanaya OnWire Kitabxanası daxildir.
Addım 2: DS18B20 -ni bağlayın
Bir çörək taxtası istifadə edərək Arduinodan +5V, GND və Digital Pin 2 (Pin 2 artıq nümunə eskizdə qurulmuşdur) istifadə edərək Erkəkdən Kişi çörək taxtası atlayıcılarından istifadə edir.
DS18B20 -ni çörək taxtasındakı 3x terminal şeridlərinə paralel olaraq bağlayın.
- Pin 1 (GND) -> GND (Zəmin 0V)
- Pin 2 (DATA) -> Rəqəmsal Pin 2
- Pin 3 (Vdd) -> +5V
Normal Güc Modu üçün +5V -dən 4.7K Rezistoru çörək taxtasındakı Digital Pin 2 telinə qoşun.
Aşağıdakı link DS18B20 1 telli temperatur sensoru üçün əla bir qaynaqdır.
www.tweaking4all.com/hardware/arduino/ardu…
Addım 3: "Tək" nümunə eskizini yükləyin
Bağladıqdan sonra Dallas Temperatur "Single" SketchOpen Arduino IDE -ni yükləməyə hazırsınız (1.8.1 istifadə edirəm) "Fayl" -> "Nümunələr" -> "Dallas Temperaturu" -> "Tək" əlavə etdim gecikmə (5000); Seriya nömrəsini kopyalamaq üçün mənə vaxt vermək üçün 103 -cü sətirdə "Alətlər" -> "İdarə Heyəti" uyğun portunuzu seçin "Alətlər" -> "Liman" İndi "Yükləyin" Eskiz "Eskiz" -> "Yüklə" "Alətlər" -> "Serial Monitor" düyməsini vurun, baud nisbətlərinin mina 9600 -ə uyğun olduğundan əmin olun. Əgər eskiz yükləməmisinizsə, lövhənizi, portunuzu, USB sürücülərinizi və s.
Addım 4: Seriya nömrəsini kopyalayın
"Serial Monitor" dan 4 -cü sətrin "Cihaz 0 Ünvanı: xxxxxxxxxxxxxxxx" olduğunu görəcəksiniz.
Bu DS18B20 -nin Seriya nömrəsidir
"0000000000000000" olarsa, DS18B20 -ni oxuyarkən bir problem var.
Siçan ilə seçin və klaviaturada CTRL+C düymələrini sıxın və sonra Notepad -a qoyun
Digər layihələrim üçün kodum bu ədədlərin bir sıra istifadə edir. HEX simini aşağıdakı formata yenidən formatladım.
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}};
Addım 5: Bitdi
İndi kodunuzdakı hər bir fərdi DS18B20 1 telli temperatur sensorunu müəyyən edə və bu kimi bir funksiyadan istifadə edə bilərsiniz:
float getTemperature (bayt j) {
sensorlar.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = sensors.getTempC (tempSensorSerial [j]);
dönmə tempC;
}