Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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“
- Atidarykite „Arduino IDE“(naudoju 1.8.1)
- Spustelėkite „Eskizas“-> „Įtraukti biblioteką“-> „Tvarkyti bibliotekas …“
- Pasirinkite paieškos juostą ir įveskite „dallas“
- Spustelėkite „DallasTemperature“ir spustelėkite „Install“
Arba galite atsisiųsti biblioteką iš čia:
Šioje bibliotekoje yra „OnWire“biblioteka.
2 veiksmas: 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“
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į
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
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;
}