Mündəricat:

Arduino ilə DS18B20 -nin Seriya nömrəsini əldə edin: 5 addım
Arduino ilə DS18B20 -nin Seriya nömrəsini əldə edin: 5 addım

Video: Arduino ilə DS18B20 -nin Seriya nömrəsini əldə edin: 5 addım

Video: Arduino ilə DS18B20 -nin Seriya nömrəsini əldə edin: 5 addım
Video: Как использовать термопару MAX6675 типа k с Arduino 2024, Noyabr
Anonim
Arduino ilə DS18B20 seriya nömrəsini əldə edin
Arduino ilə DS18B20 seriya nömrəsini əldə edin

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

Lazımi Kitabxananı Arduino IDE -yə əlavə edin
Lazımi Kitabxananı Arduino IDE -yə əlavə edin
  1. Arduino IDE açın (1.8.1 istifadə edirəm)
  2. "Eskiz" -> "Kitabxanaya daxil et" -> "Kitabxanaları İdarə et …" düyməsini basın.
  3. Axtarış çubuğunu seçin və "dallas" yazın
  4. "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

DS18B20 -ni bağlayın
DS18B20 -ni bağlayın
DS18B20 -ni bağlayın
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

Nümunə eskizini yükləyin
Nümunə eskizini yükləyin
Nümunə eskizini yükləyin
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

Seriya nömrəsini kopyalayın
Seriya nömrəsini kopyalayın
Seriya nömrəsini kopyalayın
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

Bitdi
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;

}

Tövsiyə: