Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Подключаем датчик температуры DS18S20/DS18B20 к Arduino

Для подключения датчика DS18X20 к Arduino достаточно двух проводов – линии данных и заземления; питание элемента в этом случае называется «паразитным»/фантомным (Parasite power mode) и осуществляется по линии данных за счёт накопления энергии во встроенном конденсаторе во время высокого уровня напряжения (данная схема подключения не рекомендуется при температуре свыше +100 С из-за быстрого разряда конденсатора).

Схема соединения очень простая и состоит собственно из самого датчика и сопротивления на 4.7 кОм:

 

Пример кода:

 
Код:
#include 

OneWire ds (10); // on pin 10

void setup (void) {
Serial.begin (9600);
}

void loop (void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;

if (! ds.search (addr)) {
ds.reset_search ();
delay (250);
return;
}

ds.reset ();
ds.select (addr);
ds.write (0x44,1); // start conversion, with parasite power on at the end

delay (1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower () here, but the reset will take care of it.

present = ds.reset ();
ds.select (addr);
ds.write (0xBE); // Read Scratchpad

for (i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read ();
}

// convert the data to actual temperature

unsigned int raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// count remain gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 — data[6];
}
} else {
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw << 3; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms
// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
Serial.print (» Temperature =»);
Serial.print (celsius);
Serial.print (“ C,»);
Serial.print (fahrenheit);
Serial.println (“ F»);
}

Для работы понадобятся библиотеки OneWireTempSensor.h и OneWire.h, которые можно без труда найти в интернете (или скачать ниже). В этом примере значение температуры выводится в последовательный порт и просмотреть его можно используя Serial Monitor, встроенный в Arduino IDE.


Файлы доступные для скачивания:

 


C этой схемой также часто просматривают:

Быстродействующий измеритель температуры
ФОТОМЕХАНИЧЕСКИЙ ДАТЧИК
ПРОСТОЙ РЕГУЛЯТОР ТЕМПЕРАТУРЫ ЖАЛА ПАЯЛЬНИКА
ДАТЧИК ВИБРАЦИИ ДЛЯ ОХРАННОГО УСТРОЙСТВА
Допплеровский радиолокационный датчик движущихся объектов DMS-4
Подключение LCD HD44780 к Arduino Uno
Калибровка аналогового датчика для Arduino
USB порт как источник питания
Часы DS1302 для Arduino Uno с ЖК экраном BTHQ 22005VSS

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU




Последние поступления

Графический семиполосный эквалайзер-радуга на Arduino Nano и MSGEQ7

Часы реального времени для Arduino

Старинные часы-метеостанция

Блок питания для Arduino из ATX

ATX блок питания управляемый Arduino

Arduino своими руками с USB портом

Подключение монетоприемника к Arduino

Подключение PS/2 клавиатуры к Arduino

Пробуждение ПК по сети на Arduino

Запись/чтение на SD-карту с Arduino



© 2003—2017 «KAZUS.RU - Электронный портал»