Turinys:

Gaukite „DS18B20“serijos numerį naudodami „Arduino“: 5 žingsniai
Gaukite „DS18B20“serijos numerį naudodami „Arduino“: 5 žingsniai

Video: Gaukite „DS18B20“serijos numerį naudodami „Arduino“: 5 žingsniai

Video: Gaukite „DS18B20“serijos numerį naudodami „Arduino“: 5 žingsniai
Video: ARKO. Tvirtai ilgam. Gaukite individualų pasiūlymą savo mieste. 2024, Lapkritis
Anonim
Gaukite „DS18B20“serijos numerį naudodami „Arduino“
Gaukite „DS18B20“serijos numerį naudodami „Arduino“

Tai trumpas vadovas, kaip gauti atskirus DS18B20 1 laidų temperatūros jutiklių serijos numerius.

Tai patogu projektams, kuriems reikalingi keli jutikliai.

Jums reikalingi dalykai:

  • „Arduino 5v“(„UNO“, „Mega“, „Pro Mini“ir kt.) - „Arduino UNO R3“- „AliExpress“- „eBay“
  • Temperatūros jutiklis DS18B20 - „AliExpress“- „eBay“
  • 4.7k - 1/4w rezistorius THT - AliExpress - eBay
  • Duonos lenta - „AliExpress“- „eBay“
  • Trumpieji laidai - nuo vyrų iki vyrų - „AliExpress“- „eBay“
  • Kompiuteris su įdiegta „Arduino IDE“

1 veiksmas: pridėkite reikalingą biblioteką prie „Arduino IDE“

Pridėkite reikalingą biblioteką prie „Arduino IDE“
Pridėkite reikalingą biblioteką prie „Arduino IDE“
  1. Atidarykite „Arduino IDE“(naudoju 1.8.1)
  2. Spustelėkite „Eskizas“-> „Įtraukti biblioteką“-> „Tvarkyti bibliotekas …“
  3. Pasirinkite paieškos juostą ir įveskite „dallas“
  4. Spustelėkite „DallasTemperature“ir spustelėkite „Install“

Arba galite atsisiųsti biblioteką iš čia:

Šioje bibliotekoje yra „OnWire“biblioteka.

2 veiksmas: prijunkite DS18B20

Prijunkite DS18B20
Prijunkite DS18B20
Prijunkite DS18B20
Prijunkite DS18B20

Naudodami duonos lentą, prijunkite +5V, GND ir 2 skaitmeninį kaištį (2 kaištis jau nustatytas pavyzdiniame eskize) iš „Arduino“, naudodami „Male to Male“duonos lentos trumpiklius.

Prijunkite DS18B20 lygiagrečiai prie 3x gnybtų juostų ant duonos lentos.

  • 1 kaištis (GND) -> GND (0 V įžeminimas)
  • 2 kaištis (DUOMENYS) -> Skaitmeninis kaištis 2
  • 3 kaištis (Vdd) -> +5V

Norėdami įjungti įprastą maitinimo režimą, prijunkite 4,7K rezistorių nuo +5V prie skaitmeninės 2 kontaktų plokštės.

Ši nuoroda yra puikus šaltinis DS18B20 1 laidų temperatūros jutikliui.

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

3 veiksmas: įkelkite pavyzdinį eskizą „Vienas“

Įkelkite pavyzdinį eskizą
Įkelkite pavyzdinį eskizą
Įkelkite pavyzdinį eskizą
Įkelkite pavyzdinį eskizą

Kai prijungsite, būsite pasiruošę įkelti „Dalaso temperatūros“vieną “SketchOpen Arduino IDE (aš naudoju 1.8.1). Spustelėkite„ Failas “->„ Pavyzdžiai “->„ Dalaso temperatūra “->„ Vienas “, pridėjau vėluojantis (5000); 103 eilutėje, kad gautumėte laiko nukopijuoti serijos numerįPasirinkite tinkamą lentos formą „Įrankiai“-> „Lenta“Pasirinkite tinkamą prievadą „Įrankiai“-> „Uostas“Dabar „Įkelti“eskizą „Eskizas“-> „Įkelti“Spustelėkite „Įrankiai“-> „Serijinis monitorius“ir įsitikinkite, kad duomenų perdavimo sparta atitinka 9600. Jei eskizas nebuvo įkeltas, patikrinkite savo plokštę, prievadą, USB tvarkykles ir kt.

4 žingsnis: nukopijuokite serijos numerį

Nukopijuokite serijos numerį
Nukopijuokite serijos numerį
Nukopijuokite serijos numerį
Nukopijuokite serijos numerį

Iš „Serial Monitor“pamatysite 4 eilutę „Device 0 Address: xxxxxxxxxxxxxxxx“

Tai yra DS18B20 serijos numeris

Jei tai yra „0000000000000000“, kyla problemų skaitant jūsų DS18B20.

Paryškinkite jį pele ir paspauskite klaviatūros klavišus CTRL+C, o tada užrašykite „Notepad“

Kituose mano projektuose mano kodas naudoja šių skaičių masyvą. Aš pertvarkiau HEX eilutę tokiu formatu.

DeviceAddress tempSensorSerial [9] = {

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

5 žingsnis: Baigta

Baigta
Baigta

Dabar galite identifikuoti kiekvieną atskirą 1 laido DS18B20 temperatūros jutiklį savo kode ir naudoti tokią funkciją:

float getTemperature (baitas j) {

sensor.requestTemperaturesByAddress (tempSensorSerial [j]);

plūdės tempC = jutikliai.getTempC (tempSensorSerial [j]);

grąžinimo tempC;

}

Rekomenduojamas: