DS18B20: Характеристики на температурен сензор

  • Сензорът DS18B20 може да измерва температури от -55°C до 125°C с регулируема резолюция от 9 до 12 бита.
  • Може да се захранва чрез своя щифт за данни или да използва външен източник за по-голяма стабилност.
  • Позволява свързването на множество сензори към една шина, като всеки се идентифицира със своя уникален 64-битов адрес.
  • Той е съвместим с Arduino, използвайки библиотеките OneWire и DallasTemperature.

ds18b20

El Сензор DS18B20 придоби популярност благодарение на своята надеждност и гъвкавост за измерване на температура. Той се използва широко в електронни проекти с микроконтролери като Arduino, PIC или ESP8266 поради своята простота на използване и способността му да свързва множество сензори към една и съща шина, което го прави идеален вариант както за аматьори, така и за професионалисти.

Една от основните атракции на този сензор е, че той използва само един кабел за комуникация на данни, използвайки протокола 1-тел, което улеснява интегрирането му в голямо разнообразие от проекти. Освен това DS18B20 може да работи в до два различни режима на мощност, което го прави още по-гъвкав. В тази статия ще обясним в дълбочина как работи, как можете да свържете множество сензори и как да оптимизирате температурните си измервания.

Характеристики на DS18B20

DS18B20 се произвежда от Maxim Integrated, наред с други, и се представя в различни капсулации, като форматът е ДА-92 (подобен на този на много транзистори) един от най-често срещаните. Освен това може да се намери и в запечатани и водоустойчиви версии, което го прави идеален за измерване на температури в сурова или влажна среда.

Сред най-забележителните характеристики на DS18B20 са:

  • Температурният диапазон, от който може да измерва, обхваща -55°C до 125°C, което го прави подходящ за индустриални и домашни приложения.
  • Su програмируема резолюция може да варира между 9 и 12 бита, позволяваща прецизна настройка спрямо нуждите на всеки проект.
  • Всеки сензор има уникален адрес 64 бита, улеснявайки идентифицирането на множество сензори, свързани към една и съща шина.

DS18B20 Режими на захранване

ds18b20 извод

Сензорът може да работи в два режима на захранване, осигурявайки гъвкавост при интегрирането му в различни проекти, всеки със своите предимства.

Захранване чрез щифт за данни (паразитно захранване)

Този режим е идеален, когато пространството е ограничено или когато са необходими връзки на дълги разстояния. DS18B20 черпи енергия директно от щифта за данни, когато е висок, и съхранява мощността в малък кондензатор, когато линията за данни е ниска. Този тип диета се нарича Паразитна сила.

Важно е обаче да се отбележи, че за да работи правилно е необходимо да свържете щифтовете GND y VDD на брега. Освен това е препоръчително да включите транзистор MOSFET което помага в ситуации, когато температурните преобразувания се нуждаят от повече ток.

Захранване чрез външен източник

Най-често срещаният и препоръчителен начин за захранване на DS18B20 е чрез външен източник, свързан към щифта VDD. Този метод гарантира стабилно напрежение, независимо от трафика на данни по 1-Wire шината, което е предимство за проекти, изискващи постоянна точност.

Как да използвате DS18B20 с Arduino

arduino връзка

За да работите с този сензор на платформата Arduino, е необходимо да използвате две основни библиотеки: OneWire y Далас Температура. Тези библиотеки улесняват комуникацията и позволяват лесно четене и конфигурация.

Библиотека на OneWire: Позволява комуникация чрез 1-Wire протокол. Може да се изтегли от Хранилище на GitHub.

Далас Книжарница Температура: Той съдържа функциите, необходими за отчитане на температурата и конфигуриране на сензора. Изтеглете го от тази връзка.

След като инсталирате и двете библиотеки, можете да започнете работа със сензора без усложнения. По-долу обясняваме някои примери за това как да разчитате температурата и как да работите с множество сензори.

Пример 1: Отчитане на температурата с един сензор

За да извършите отчитане на температурата с един DS18B20, свързан към Arduino, основната схема включва просто свързване на щифта за данни на сензора към цифров щифт 2 на Arduino, заедно с резистор Набиране от 4.7kΩ.

Това е основният код за четене на температурата на сензора:

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

Кодът е доста прост. Изисква само няколко реда в главния цикъл, за да поиска температурата и да я прочете, което го прави много лесен за внедряване и персонализиране за различни приложения.

Пример 2: Използване на множество сензори на различни щифтове

При работа с повече от един DS18B20 има два начина за свързване на сензорите. Първият е чрез присвояване на различен цифров щифт на Arduino към всеки сензор. В този случай ще е необходим 4.7kΩ Pull-Up резистор за всеки сензор.

Тук ви показваме пример как да работите с два сензора, свързани на различни щифтове:

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

Пример 3: Множество сензори, свързани към един щифт

Другата възможност за свързване на няколко DS18B20 в проект е да се направи това с помощта на един щифт и една и съща 1-Wire шина за всички тях. В този случай всеки сензор трябва да има своя уникален идентификационен номер, което е зададено фабрично. Тук обясняваме как да получите тези адреси с помощта на следния код:

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

След като имате адресите на всички сензори, можете да прочетете конкретния сензор, като използвате неговия уникален адрес. Следният код ви показва как да го направите:

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

Предимствата на този метод са, че спестявате пинове на Arduino и можете да свържете много сензори паралелно към една и съща шина за данни.

С тези примери можете да видите гъвкавостта и мощността на сензора DS18B20. Много е лесно за изпълнение и ако трябва да свържете няколко сензора, имате пълна гъвкавост да го направите по различни начини. DS18B20 е един от най-надеждните сензори за измерване на температура и благодарение на ниската си консумация на енергия и лесното програмиране е идеален за всички видове проекти.

Сензорът DS18B20 е не само лесен за използване с Arduino, но може да се използва и в широк спектър от промишлени и жилищни приложения като мониторинг на температурата в климатични системи, машини или дори оранжерии.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.