Arduino:Примеры/Гайд по использованию температурного датчика DS18B20 с Arduino
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Гайд по использованию температурного датчика DS18B20 с Arduino[1]
Это руководство объясняет, как считывать температуру при помощи температурного датчика DS18B20 и платы Arduino.
Температурный датчик DS18B20
Температурный датчик DS18B20 – это 1-проводной цифровой температурный датчик. Ему требуется очень простая электрическая цепь. Он коммуницирует через общую шину, и это значит, что вы можете считывать данные с нескольких температурных датчиков, используя всего один цифровой контакт Arduino.
Как видно на картинке ниже, этот датчик оснащен всего тремя контактами:
У датчика DS18B20 есть и водонепроницаемая версия:
Функции
Главные функции температурного датчика DS18B20:
- Коммуникация: через 1-проводную шину
- Диапазон измеряемой температуры: от -55°C до 125°C
- Точность: +/- 0,5% (в диапазоне от -10°C до 85°C)
Считывание температуры с помощью DS18B20 и Arduino
Проект, который мы создадим, будет считывать температуру при помощи датчика DS18B20 и платы Arduino, а считанные значения будут показаны в мониторе порта IDE Arduino.
Необходимые компоненты
- Одна плата Arduino Uno
- Одна макетная плата
- Один температурный датчик DS18B20
- Один резистор на 4700 Ом
- Провода-перемычки
Схема
Датчик DS18B20 может работать в двух режимах:
- Нормальный режим. В этом случае нужно будет подключить все три контакта DS18B20. Ниже – схема того, каким должно быть подключение:
- Паразитный режим. В этом случае нужно подключить только два контакта DS18B20: GND и контакт для передачи данных. Питание к датчику будет идти через контакт для данных.
Ниже – схема того, каким должно быть подключение:
Вы можете считывать температуру сразу с нескольких датчиков DS18B20, используя всего один цифровой контакт Arduino. Для этого вам нужно подключить контакты DQ от всех датчиков к цифровому контакту Arduino.
Код
Вам нужно будет установить две библиотеки: OneWire и Dallas Temperature.
Установка библиотеки OneWire
- Кликните здесь, чтобы скачать библиотеку OneWire. В результате в вашу папку загрузок должен скачаться ZIP-файл.
- Распакуйте этот ZIP-файл. В результате у вас должна получиться папка под названием «OneWire-master».
- Переименуйте папку «OneWire-master» на «OneWire».
- Переместите папку «OneWire» в папку библиотек IDE Arduino.
- Откройте IDE Arduino.
Установка библиотеки DallasTemperature
- Кликните здесь, чтобы скачать библиотеку DallasTemperature. В результате в вашу папку загрузок должен скачаться ZIP-файл.
- Распакуйте этот ZIP-файл. В результате у вас должна получиться папка под названием «Arduino-Temperature-Control-Library-master».
- Переименуйте папку «Arduino-Temperature-Control-Library-master» на «DallasTemperature».
- Переместите папку «DallasTemperature» в папку библиотек IDE Arduino.
- Наконец, откройте IDE Arduino.
После установки необходимых библиотек загрузите в IDE Arduino скетч, показанный ниже:
/*********
Автор - Руи Сантос (Rui Santos)
Более подробно о проекте на: http://randomnerdtutorials.com
За основу взят пример «Dallas Temperature Library»
*********/
#include <OneWire.h>
#include <DallasTemperature.h>
// контакт для данных подключаем к цифровому контакту 2 на Arduino:
#define ONE_WIRE_BUS 2
// создаем экземпляр класса OneWire, чтобы с его помощью
// общаться с однопроводным устройством
// (т.е. в нашем случае – с температурным датчиком):
OneWire oneWire(ONE_WIRE_BUS);
// передаем объект oneWire объекту sensors:
DallasTemperature sensors(&oneWire);
void setup(void)
{
// запускаем последовательную коммуникацию (в отладочных целях):
Serial.begin(9600);
// запускаем библиотеку:
sensors.begin();
}
void loop(void){
// вызываем функцию sensors.requestTemperatures(),
// которая приказывает всем устройствам, подключенным к шине,
// выполнить конверсию температурных данных:
sensors.requestTemperatures();
Serial.print("Celsius temperature: ");
// "Температура в Цельсиях: "
// почему «byIndex»? к одной шине может быть подключено
// больше одного датчика; самое первое устройство на шине – это «0»:
Serial.print(sensors.getTempCByIndex(0));
Serial.print(" - Fahrenheit temperature: ");
// " - Температура в Фаренгейтах: "
Serial.println(sensors.getTempFByIndex(0));
delay(1000);
}
Наконец, открываем монитор порта IDE Arduino на скорости 9600 бод. В нем должны появиться данные о температуре – в градусах Цельсия и Фаренгейта.
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino