Датчик DS18B20 предназначен для измерения температуры. Датчик имеет влагозащищенный корпус, что позволяет использовать его в условиях дождя или же для измерения температуры жидкостей. Возможно также исполнение без герметичного корпуса.
Характеристики:
- Питание: 3 … 5,5 В постоянного тока
- Диапазон измеряемых температур: -55 … +125 °C от -10 до +85°C с точностью ±0,5°C
- Период измерений: 1 сек. между измерениями
- Выходной сигнал: Цифровой
Датчик DS18B20 имеет всего 3 вывода:
GND – "Земля"
Vdd – Питание
Data – вывод данных
Возможна работа в режиме паразитного питания (без использования вывода Vdd), подробней об этом можно прочитать тут.
Подключение к Arduino:
Для подключения датчика нам необходимы:
- Любая Arduino-совместимая плата
- Резистор 4,7 Ком (для негерметичного исполнения)
- Компьютер с установленной средой Arduino IDE.
- USB кабель для подключения Arduino к персональному компьютеру
Принципиальная схема подключения компонентов:
Для негерметичного исполнения:
В некоторых датчиках в герметичном исполнении нагрузочные резисторы уже присутствуют, поэтому рекомендуется сначала проверить работоспособность датчика без резистора и только потом, если не заработает, добавить резистор номиналом около 4.7 КОм в разрыв между сигнальным проводом и проводом питания, как на схеме выше.
Для герметичного или для датчика на модуле:
Скетч для Arduino:
Для считывания показаний с датчика необходимо использовать библиотеки*:
- OneWire
- DallasTemperature
*Библиотека Arduino – программный код, хранящийся не в скетче, а во внешних файлах, которые можно подключить к вашему проекту. Библиотека содержит в себе различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими электронными компонентами.
Пример кода:
// Подключение библиотек
#include <DallasTemperature.h> #include <OneWire.h> // Определяем пин шины данных OneWire (можно выбрать любой свободный) #define ONE_WIRE_BUS 2 // Задаем пин шины данных OneWire OneWire oneWire(ONE_WIRE_BUS); // Указываем, что будем работать с температурным датчиком (по такому же принципу
// можно работать с любыми устройствами, поддерживающими OneWire) DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(9600); sensors.begin(); }
void loop(void) { Serial.print("Запрос температуры..."); sensors.requestTemperatures(); // Посылаем команду для считывания температуры Serial.println("ГОТОВО"); Serial.print("Температура: "); Serial.println(sensors.getTempCByIndex(0)); // Индекс "0" означает, что мы работаем с первым
// устройством на шине, в нашем случае единственным delay(1000); }
Комментарии