DS18B20: temperatuurianduri omadused

  • Andur DS18B20 suudab mõõta temperatuure vahemikus -55°C kuni 125°C reguleeritava eraldusvõimega 9 kuni 12 bitti.
  • Suurema stabiilsuse tagamiseks saab seda toita andmepistiku kaudu või kasutada välist allikat.
  • See võimaldab ühendada mitu andurit ühele siinile, millest igaüks tuvastatakse ainulaadse 64-bitise aadressi järgi.
  • See ühildub Arduinoga, kasutades OneWire'i ja DallasTemperature'i teeke.

ds18b20

El DS18B20 andur on saavutanud populaarsuse tänu töökindlusele ja mitmekülgsusele temperatuuri mõõtmisel. Seda kasutatakse laialdaselt elektroonikaprojektides koos mikrokontrolleritega nagu Arduino, PIC või ESP8266 tänu kasutuslihtsusele ja võimalusele ühendada samale siinile mitu andurit, mis teeb sellest ideaalse võimaluse nii amatööridele kui professionaalidele.

Selle anduri üks peamisi atraktsioone on see, et see kasutab protokolli kasutades andmesideks ainult ühte kaablit 1-traat, mis hõlbustab selle integreerimist väga erinevatesse projektidesse. Lisaks saab DS18B20 töötada kuni kahes erinevas toiterežiimis, muutes selle veelgi paindlikumaks. Kogu selle artikli jooksul selgitame põhjalikult, kuidas see töötab, kuidas saate ühendada mitu andurit ja kuidas optimeerida temperatuuri mõõtmisi.

DS18B20 omadused

DS18B20 on tootja Maxim Integrated muu hulgas ja see on esitatud erinevates kapslites, kusjuures formaat on TO-92 (sarnaselt paljude transistoridega) üks levinumaid. Lisaks võib seda leida ka suletud ja veekindlates versioonides, mis muudab selle ideaalseks temperatuuri mõõtmiseks karmis või niiskes keskkonnas.

DS18B20 silmapaistvamate omaduste hulgas on järgmised:

  • Temperatuurivahemik, millest see mõõta saab, katab -55°C kuni 125°C, muutes selle sobivaks tööstuslikuks ja koduseks kasutamiseks.
  • Su programmeeritav eraldusvõime vahel võib erineda 9 ja 12 bitti, mis võimaldab iga projekti vajadustest lähtuvalt täpselt kohandada.
  • Igal anduril on kordumatu aadress 64 bitti, mis hõlbustab mitme samasse siini ühendatud anduri tuvastamist.

DS18B20 toiterežiimid

ds18b20 pin-out

Andur võib töötada kahes toiterežiimis, pakkudes paindlikkust selle integreerimisel erinevatesse projektidesse, millest igaühel on oma eelised.

Toide andmepistiku kaudu (Parasite Power)

See režiim on ideaalne, kui ruumi on vähe või kui on vaja pikamaaühendusi. DS18B20 võtab toite otse andmepistikust, kui see on kõrge, ja salvestab toite väikesesse kondensaatorisse, kui andmeliini on vähe. Seda tüüpi dieeti nimetatakse Parasiitide jõud.

Siiski on oluline märkida, et selle korrektseks tööks on vaja tihvtid ühendada GND y VDD kaldale. Lisaks on soovitatav lisada transistor MOSFET mis aitab olukordades, kus temperatuurimuutused vajavad rohkem voolu.

Toide välise allika abil

Kõige tavalisem ja soovitatavam viis DS18B20 toiteks on kontaktiga ühendatud välise allika kaudu VDD. See meetod tagab stabiilse pinge, mis ei sõltu andmeliiklusest 1-Wire siinil, mis on kasulik pidevat täpsust nõudvate projektide jaoks.

Kuidas kasutada DS18B20 koos Arduinoga

arduino ühendus

Selle anduriga Arduino platvormil töötamiseks on vaja kasutada kahte põhiteeki: OneWire y Dallase temperatuur. Need teegid hõlbustavad suhtlemist ja võimaldavad lugemist ja konfigureerimist hõlpsalt läbi viia.

OneWire'i teek: Võimaldab suhelda 1-Wire protokolli abil. Selle saab alla laadida saidilt GitHubi hoidla.

Dallase raamatupoe temperatuur: See sisaldab temperatuuri lugemiseks ja anduri konfigureerimiseks vajalikke funktsioone. Laadige see alla aadressilt seda linki.

Kui olete mõlemad teegid installinud, võite hakata anduriga töötama ilma komplikatsioonideta. Allpool selgitame mõningaid näiteid temperatuuri lugemise ja mitme anduriga töötamise kohta.

Näide 1: Temperatuuri lugemine ühe anduriga

Temperatuuri lugemiseks ühe DS18B20-ga, mis on ühendatud Arduinoga, hõlmab põhiskeem lihtsalt anduri andmepistiku ühendamist digitaalne pin 2 Arduino koos takistiga Üles tõmbama 4.7 kΩ.

See on põhikood anduri temperatuuri lugemiseks:

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire  ds(2);  DallasTemperature sensors(&ds); void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float tempC = sensors.getTempCByIndex(0);   Serial.print("Temperatura= ");   Serial.print(tempC);   Serial.println(" °C");   delay(1000); }

Kood on üsna lihtne. Temperatuuri küsimiseks ja lugemiseks on põhiahelas vaja vaid paari rida, mis muudab selle rakendamise ja kohandamise erinevateks kasutusteks väga lihtsaks.

Näide 2: Mitme anduri kasutamine erinevatel kontaktidel

Kui töötate rohkem kui ühe DS18B20-ga, on andurite ühendamiseks kaks võimalust. Esimene on igale andurile erineva Arduino digitaalse tihvti määramine. Sel juhul on iga anduri jaoks vaja 4.7 kΩ Pull-Up takistit.

Siin näitame teile näidet, kuidas töötada kahe anduriga, mis on ühendatud erinevatele kontaktidele:

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire ds1(2); OneWire ds2(3);  DallasTemperature sensors1(&ds1); DallasTemperature sensors2(&ds2); void setup() {   Serial.begin(9600);   sensors1.begin();   sensors2.begin(); } void loop() {   sensors1.requestTemperatures();   float temp1 = sensors1.getTempCByIndex(0);   sensors2.requestTemperatures();   float temp2 = sensors2.getTempCByIndex(0);   Serial.print("Temperatura 1 = ");   Serial.print(temp1);   Serial.print(" °C   Temperatura 2 = ");   Serial.println(temp2);   delay(1000); }

Näide 3: ühe tihvtiga ühendatud mitu andurit

Teine võimalus mitme DS18B20 ühendamiseks projekti raames on kasutada ühte viiku ja kõigi jaoks sama 1-juhtmelist siini. Sel juhul peab igal anduril olema oma unikaalne identifitseerimisnumber, mis on tehases määratud. Siin selgitame, kuidas neid aadresse järgmise koodi abil hankida:

#include <OneWire.h> OneWire ds(2); void setup(void) {   Serial.begin(9600); } void loop(void) {   byte address[8];   if (!ds.search(address)) {     Serial.println("No more addresses.");     ds.reset_search();     delay(250);     return;   }   Serial.print("Address: ");   for (int i = 0; i < 8; i++) {     Serial.print(address[i], HEX);     if (i < 7) Serial.print(", ");   }   Serial.println();   delay(250); }

Kui teil on kõigi andurite aadressid, saate lugeda konkreetset andurit selle kordumatu aadressi abil. Järgmine kood näitab, kuidas seda teha:

#include <DallasTemperature.h>  OneWire ds(2);  DallasTemperature sensors(&ds);  DeviceAddress sensor1 = {0x28, 0xFF, 0xCA, 0x4A, 0x5, 0x16, 0x3, 0xBD}; DeviceAddress sensor2 = {0x28, 0xFF, 0x89, 0x3A, 0x1, 0x16, 0x4, 0xAF};  void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float temp1 = sensors.getTempC(sensor1);   float temp2 = sensors.getTempC(sensor2);   Serial.print("Temp sensor 1: ");   Serial.println(temp1);   Serial.print("Temp sensor 2: ");   Serial.println(temp2);   delay(1000); }

Selle meetodi eelised on see, et säästate Arduino kontakte ja saate sama andmesiiniga paralleelselt ühendada palju andureid.

Nende näidete abil näete anduri DS18B20 mitmekülgsust ja võimsust. Seda on väga lihtne rakendada ja kui teil on vaja ühendada mitu andurit, on teil täielik paindlikkus seda erinevatel viisidel teha. DS18B20 on üks töökindlamaid andureid temperatuuri mõõtmiseks ning tänu madalale energiatarbimisele ja lihtsale programmeerimisele sobib see suurepäraselt igat tüüpi projektide jaoks.

Andurit DS18B20 pole mitte ainult lihtne kasutada koos Arduinoga, vaid seda saab kasutada ka paljudes tööstus- ja elamurakendustes, nagu temperatuuri jälgimine kliimaseadmetes, masinates või isegi kasvuhoonetes.


Ole esimene kommentaar

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.