cart

Продуктов в корзине: 0

Поиск товаров

Новинки



Специальная версия цифрового датчика температуры в защищенном от влаги корпусе. Удобно использовать, когда требуется измерить температуру во влажной среде.

 

 ds18b20

Датчик температуры водонепроницаемый для arduino. Работает по протоколу 1-Wire датчик температуры в водонипраницаемом корпусе и проводе длинной 90 см. Позволяет измерять температуру в аквариумах и прочих сосудах, широкий диапазон температур предоставляет возможность использовать его в разных ситуациях. Протокол 1-wire не требует дополнительного источника питания, а толко провода передчи данных и заземления.

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

 Совместимость с напряжением питания и уровнями сигналов: 3-5.5 В

Точность ±0.5°C в диапазоне: -10°C to +85°C
Рабочий диапазон температур: -55 to 125°C
Настраиваемое разрешение: 9-12 бит
Интерфейс: 1-Wire
Уникальный ID размером 64-бит для каждого датчика
Несколько датчиков могут работать на одной шине
Время опроса: 750 мс
Назначение проводников:
Красный – VCC
Черный – GND
Желтый – DATA
Защитная гильза из нержавеющей стали:
Диаметр гильзы 6 мм
Длинна гильзы 35 мм
Длина провода 1 метр

Подключение
Датчик температуры водонепроницаемый позволяет подключить несколько датчиков на 1 шину, так как работает по протоколу передачи данных ONEWIRE

DS18B20pins

Датчик может запитываться двумя способами - внешним питанием (3 провода) или паразитным (питание от шины, 2 провода). Расписывать эти режимы не буду, все есть в документации. Отмечу лишь то, что в данном проекте мы будем использовать нормальное (внешнее) питание датчика.

Схема подключения датчика DS18B20 к Arduino приведена ниже. Подтягивающий Pull-Up резистор номиналом 4.7 кОм (5 кОм) включается между выводом DQ (Data) и питанием датчика Vdd.

ds18b20podkl

Подключение нескольких датчиков 

ds18b20 3dat

 Для работы с датчиком потребуюются библиотеки OneWire и DallasTemperature

Каждый датчик температуры имеет уникальный 64-битный адрес устрйства, по которому у нас есть возможность опросить определенный датчик и взять с него значения температуры

Скачав библиотеки установите их в среду Arduino IDE. Эскиз=>Импорт библиотек=>Добавить библиотеку. И укажите путь к скачанным файлам.

ds18b20primers

Запускаем Arduino IDE, переходим к примерам по работе с датчиком, и выбираем пример Multiple.
В примере ищем строку #define ONE_WIRE_BUS 2 где 2 это номер цифрового порта ардуино к которому подключен датчик (в нашем случае это 10 цифровой вход) и меняем на строку #define ONE_WIRE_BUS 10, после чего щаливаем программу в нашу плату.

ds18b20primers1


Открываем монитор COM порта, снимаем галочку автопрокрутка и перемещаемся в самые верх окна с помошью полосы прокрутки. Где видим строки:
Locating device...Found 2 devices - количество подключенных датчиков
Parasite power is: OFF - паразитное напряжение отключено так как наши датчики подключены по трех проводной схеме
Device 0 Address: 280054b604000092 - адрес первого датчика
Device 1 Address: 289у95и504000057 - адрес второго датчика
Device 0 Resolution: 9 - Точность измерений 1 дачика
Device 1 Resolution: 9 - Точность измерений 2 дачика

DeviceAddress:280054b604000092 Temp C:7.00 Temp F: 44.60
DeviceAddress:280054b604000092 Temp C:27.50 Temp F: 81.50

Адреса датчиков и температура по шкалам Цельсия и Фаренгейта

Пример скеча с использованием датчиков:

#include <OneWire.h>//Температура
#include <DallasTemperature.h>//Температура

int pinTemp = 51;//порт подключения датчика температур

DeviceAddress term1 = {0x28, 0xFF, 0xD7, 0xDD, 0x64, 0x15, 0x02, 0x4F}; // адрес датчика DS18B20 28FFD7DD6415024F
DeviceAddress term2 = {0x28, 0xFF, 0xD7, 0xDD, 0x64, 0x15, 0x02, 0x4F }; // адрес датчика DS18B20 28FFD7DD6415024F
int temppres = 2;
OneWire oneWire(pinTemp);//библиотека для температуры
DallasTemperature tempsens(&oneWire); ;//библиотека для температуры

void setup() {
tempsens.begin(); //инициализация датчиков температуры
tempsens.setResolution(term1, temppres);// установка разрешающую способности датчика
tempsens.setResolution(term2, temppres);// установка разрешающую способности датчика
}

void loop(void) {
tempsensor(); // обновляем переменные температур
}

void tempsensor () // установка данных температуры

{
tempsens.requestTemperatures(); //опрос датчиков температуры
temp1 = tempsens.getTempC(term1); //получение данных
temp2 = tempsens.getTempC(term2); //получение данных
Serial.print("Temp1: ");
Serial.println(temp1);
Serial.print("Temp2: ");
Serial.println(temp2);

}

Загружаем скетч и смотрим монитор порта. Видим такую картинку .... 

ds18b20prim3

Датчики работают.

Файлы

DallasTemperature - Библиотека для работы с датчиком DS18B20

OneWire - Библиотека для протокола передачи данных ONEWIRE

Добавить комментарий


Защитный код
Обновить

Недавно смотрели

Go to top