Датчик температуры DS18B20 — это популярный выбор среди разработчиков Arduino. Благодаря простоте подключения, высокой точности и поддержке цифрового вывода, DS18B20 используется в проектах, требующих контроля температуры. Эта статья поможет вам понять, как подключить DS18B20 к Arduino, какие библиотеки необходимы для его работы, и покажет пример кода для получения данных с датчика.
Описание DS18B20
Датчик температуры DS18B20 — это цифровой датчик температуры с интерфейсом 1-Wire, который позволяет получать точные данные о температуре окружающей среды. Он измеряет температуру в диапазоне от -55°C до +125°C с точностью до 0.5°C. Удобство подключения и минимальные требования к дополнительным компонентам делают его идеальным для проектов на базе Arduino.
DS18B20 поддерживает два режима работы: «обычный» и «паразитный«. В обычном режиме для работы датчика требуется три провода: питание (VCC), земля (GND) и сигнальный контакт. В паразитном режиме датчик использует два провода (VCC и GND) и может передавать данные, питаясь от линии передачи.
Подключение DS18B20 к Arduino: Схема
Список компонентов
- Датчик температуры DS18B20
- Плата Arduino (Uno, Nano, или другая модель)
- Резистор 4.7 кОм (для сигнального контакта)
- Соединительные провода
Схема подключения DS18B20 к Arduino
DS18B20 также поддерживает паразитный режим, но для Arduino чаще используют трёхпроводное подключение для повышения стабильности работы.
Таблица 1. Подключение DS18B20 к разным платам Arduino
№ | DS18B20 | Описание | Arduino Nano | Arduino Uno | Arduino Mega |
---|---|---|---|---|---|
1 | VCC | Питания | 5V | 5V | 5V |
2 | GND | Земля | GND | GND | GND |
3 | DQ | Цифровой пин | D2 | D2 | D2 |

Необходимые библиотеки для Arduino для работы с DS18B20
Для работы с DS18B20 в Arduino IDE необходимо установить две библиотеки:
- OneWire: эта библиотека позволяет Arduino взаимодействовать с устройствами, использующими интерфейс 1-Wire, таким как DS18B20.
- DallasTemperature: библиотека, специально разработанная для работы с температурными датчиками Dallas, такими как DS18B20. Она упрощает получение данных о температуре и взаимодействие с несколькими датчиками одновременно.
Код для работы с DS18B20 на Arduino
#include <OneWire.h>
#include <DallasTemperature.h>
// Пин, к которому подключен сигнальный контакт DS18B20
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
// Инициализация последовательного соединения
Serial.begin(9600);
// Инициализация датчика DS18B20
sensors.begin();
Serial.println("Docstech.ru");
}
void loop() {
sensors.requestTemperatures(); // Запрос температуры с датчика
float temperatureC = sensors.getTempCByIndex(0); // Чтение температуры в Цельсиях
Serial.print("Температура: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(2000); // Задержка 2 секунды
}
Объяснение кода
- Подключение библиотек: Подключаем библиотеки OneWire и DallasTemperature, чтобы Arduino мог работать с интерфейсом 1-Wire и считывать данные с DS18B20.
- Инициализация датчика: В функции setup() вызываем sensors.begin() для инициализации работы с датчиком.
- Чтение температуры: В функции loop() каждый цикл выполняется запрос температуры с помощью sensors.requestTemperatures(), затем значение температуры считывается и выводится в Цельсиях на последовательный монитор.
- Задержка: Вводим задержку в 2 секунды между чтениями для снижения нагрузки на плату Arduino и датчик.
Заключение
DS18B20 — это простой и удобный датчик температуры, идеально подходящий для использования с Arduino. Благодаря цифровому интерфейсу 1-Wire, его подключение к Arduino требует всего одного пина для передачи данных, что упрощает сборку и позволяет использовать несколько датчиков одновременно. В этой статье мы разобрали, как подключить DS18B20 к Arduino, установили необходимые библиотеки и привели пример кода для считывания температуры.
Теперь вы знаете, как подключить DS18B20 к Arduino и как использовать его для создания проектов, связанных с контролем температуры. Это может быть полезно для создания умных термометров, термостатов, погодных станций и других приложений, требующих мониторинга температуры.
Часто задаваемые вопросы (FAQ)
1. Как подключить несколько DS18B20 к Arduino?
Можно подключить несколько DS18B20 параллельно к одной линии данных, используя разные идентификаторы для каждого датчика. Библиотека DallasTemperature поддерживает несколько датчиков на одном пине.
2. Можно ли использовать DS18B20 без резистора?
Нет, без резистора на 4.7 кОм сигнальная линия может быть нестабильной, что приведет к сбоям в работе датчика. Резистор подтягивает линию к источнику питания, обеспечивая стабильность сигнала.
3. Как получить температуру в Фаренгейтах?
Функция
возвращает температуру в градусах Фаренгейта, где 0 — это индекс датчика, если их несколько.
4. Можно ли использовать DS18B20 с ЖК дисплеем?
Да, вы можете подключить ЖК дисплей (например, 1602) к Arduino и вывести данные о температуре. Для этого можно использовать библиотеку LiquidCrystal.
5. Как узнать, что DS18B20 работает корректно?
Подключите DS18B20, загрузите тестовый скетч и откройте последовательный монитор. Если температура отображается правильно, значит датчик работает корректно.