DS18B20: Karakteristikat e sensorit të temperaturës

  • Sensori DS18B20 mund të matë temperaturat nga -55°C deri në 125°C me rezolucion të rregullueshëm nga 9 deri në 12 bit.
  • Mund të mundësohet përmes pinit të tij të të dhënave ose të përdorë një burim të jashtëm për stabilitet më të madh.
  • Ai lejon lidhjen e sensorëve të shumtë në një autobus të vetëm, me secilin të identifikuar nga adresa e tij unike 64-bit.
  • Është në përputhje me Arduino duke përdorur bibliotekat OneWire dhe DallasTemperature.

ds18b20

El Sensori DS18B20 ka fituar popullaritet falë besueshmërisë dhe shkathtësisë për matjen e temperaturës. Përdoret gjerësisht në projektet elektronike me mikrokontrollues si Arduino, PIC ose ESP8266 për shkak të thjeshtësisë së përdorimit dhe aftësisë së tij për të lidhur sensorë të shumtë në të njëjtin autobus, gjë që e bën atë një opsion ideal si për amatorë ashtu edhe për profesionistë.

Një nga tërheqjet kryesore të këtij sensori është se ai përdor vetëm një kabllo për komunikimin e të dhënave duke përdorur protokollin 1-Wire, e cila lehtëson integrimin e saj në një shumëllojshmëri të gjerë projektesh. Për më tepër, DS18B20 mund të funksionojë deri në dy mënyra të ndryshme të energjisë, duke e bërë atë edhe më fleksibël. Gjatë gjithë këtij artikulli, ne do të shpjegojmë në thellësi se si funksionon, si mund të lidhni sensorë të shumtë dhe si të optimizoni matjet tuaja të temperaturës.

Karakteristikat e DS18B20

DS18B20 është prodhuar nga Maxim Integrated, ndër të tjera, dhe paraqitet në përmbledhje të ndryshme, ku formati është TO-92 (i ngjashëm me atë të shumë transistorëve) një nga më të zakonshmet. Për më tepër, mund të gjendet edhe në versione të mbyllura dhe të papërshkueshme nga uji, duke e bërë atë ideal për matjen e temperaturave në mjedise të ashpra ose të lagështa.

Ndër veçoritë më të dukshme të DS18B20 janë:

  • Gama e temperaturës nga e cila mund të matë mbulohet -55°C deri në 125°C, duke e bërë atë të përshtatshëm për përdorime industriale dhe shtëpiake.
  • Su rezolucioni i programueshëm mund të ndryshojnë ndërmjet 9 dhe 12 bit, duke lejuar rregullim të saktë bazuar në nevojat e secilit projekt.
  • Çdo sensor ka një adresë unike 64 bit, duke lehtësuar identifikimin e sensorëve të shumtë të lidhur në të njëjtin autobus.

Modalitetet e fuqisë DS18B20

ds18b20 pin-out

Sensori mund të funksionojë në dy mënyra të energjisë, duke siguruar fleksibilitet kur e integron atë në projekte të ndryshme, secili me avantazhet e veta.

Fuqia përmes pinit të të dhënave (Parasite Power)

Kjo mënyrë është ideale kur hapësira është e kufizuar ose kur nevojiten lidhje në distanca të gjata. DS18B20 merr energji direkt nga pini i të dhënave kur është i lartë dhe e ruan energjinë në një kondensator të vogël kur linja e të dhënave është e ulët. Kjo lloj diete quhet Fuqia e parazitëve.

Sidoqoftë, është e rëndësishme të theksohet se që ajo të funksionojë siç duhet, është e nevojshme të lidhni kunjat GND y VDD në breg. Për më tepër, këshillohet të përfshini një tranzistor MOSFET gjë që ndihmon në situatat kur konvertimet e temperaturës kanë nevojë për më shumë rrymë.

Fuqia duke përdorur një burim të jashtëm

Mënyra më e zakonshme dhe e rekomanduar për të fuqizuar DS18B20 është përmes një burimi të jashtëm të lidhur me kutinë VDD. Kjo metodë garanton një tension të qëndrueshëm të pavarur nga trafiku i të dhënave në autobusin 1-Wire, i cili është i favorshëm për projektet që kërkojnë saktësi të vazhdueshme.

Si të përdorni DS18B20 me Arduino

lidhje arduino

Për të punuar me këtë sensor në platformën Arduino, është e nevojshme të përdorni dy biblioteka themelore: OneWire y Temperatura e Dallasit. Këto biblioteka lehtësojnë komunikimin dhe lejojnë që leximet dhe konfigurimet të kryhen lehtësisht.

Biblioteka OneWire: Lejon komunikimin duke përdorur protokollin 1-Wire. Mund të shkarkohet nga Magazinimi i GitHub.

Temperatura e librarisë në Dallas: Ai përmban funksionet e nevojshme për të lexuar temperaturën dhe për të konfiguruar sensorin. Shkarkoje nga kjo lidhje.

Pasi të keni instaluar të dy bibliotekat, mund të filloni të punoni me sensorin pa komplikime. Më poshtë shpjegojmë disa shembuj se si të lexoni temperaturën dhe si të punoni me sensorë të shumtë.

Shembulli 1: Leximi i temperaturës me një sensor të vetëm

Për të kryer një lexim të temperaturës me një DS18B20 të vetëm të lidhur me një Arduino, qarku bazë përfshin thjesht lidhjen e pinit të të dhënave të sensorit me pin dixhital 2 i Arduino, së bashku me një rezistencë Tërheq lart prej 4.7 kΩ.

Ky është kodi bazë për të lexuar temperaturën e sensorit:

#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); }

Kodi është mjaft i thjeshtë. Kërkon vetëm disa rreshta në ciklin kryesor për të kërkuar temperaturën dhe për ta lexuar atë, duke e bërë shumë të lehtë zbatimin dhe personalizimin për përdorime të ndryshme.

Shembulli 2: Përdorimi i shumë sensorëve në kunja të ndryshme

Kur punoni me më shumë se një DS18B20, ekzistojnë dy mënyra për të lidhur sensorët. E para është duke caktuar një pin dixhital të ndryshëm Arduino për secilin sensor. Në këtë rast, do të nevojitet një rezistencë tërheqëse 4.7 kΩ për çdo sensor.

Këtu ju tregojmë një shembull se si të punoni me dy sensorë të lidhur në kunja të ndryshme:

#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); }

Shembulli 3: Sensorë të shumtë të lidhur në një kunj të vetëm

Mundësia tjetër për të lidhur disa DS18B20 në një projekt është ta bëni këtë duke përdorur një kunj të vetëm dhe të njëjtin autobus 1-Wire për të gjithë. Në këtë rast, çdo sensor duhet të ketë të vetin numrin unik të identifikimit, e cila është caktuar në fabrikë. Këtu shpjegojmë se si t'i merrni ato adresa duke përdorur kodin e mëposhtëm:

#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); }

Pasi të keni adresat e të gjithë sensorëve, mund të lexoni sensorin specifik duke përdorur adresën e tij unike. Kodi i mëposhtëm ju tregon se si ta bëni atë:

#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); }

Përparësitë e kësaj metode janë se ju ruani kunjat në Arduino dhe mund të lidhni shumë sensorë paralelisht me të njëjtin autobus të të dhënave.

Me këta shembuj, mund të shihni shkathtësinë dhe fuqinë e sensorit DS18B20. Është shumë e lehtë për t'u zbatuar dhe nëse keni nevojë të lidhni sensorë të shumtë, ju keni fleksibilitet të plotë për ta bërë atë në mënyra të ndryshme. DS18B20 është një nga sensorët më të besueshëm për matjen e temperaturës dhe falë konsumit të ulët të energjisë dhe programimit të lehtë, është i përsosur për të gjitha llojet e projekteve.

Sensori DS18B20 nuk është vetëm i lehtë për t'u përdorur me Arduino, por mund të përdoret gjithashtu në një gamë të gjerë aplikimesh industriale dhe rezidenciale si monitorimi i temperaturës në sistemet e ajrit të kondicionuar, makineritë apo edhe serrat.


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.