Модуль датчика температуры DS18B20

Код:00541
Артикул:KY-001
В наличии:есть
250 руб
1
Модуль датчика температуры DS18B20
Temperature sensor module KY-001
 
Датчик температуры воздуха с цифровым представлением данных на выходе. Предназначен для работы совместно с микроконтроллером. Основной компонент – микросхема ds18b20, преобразующая температуру корпуса в информацию передаваемую по последовательной двухпроводной шине данных 1-Wire. На шину данных можно установить несколько таких датчиков используя один вывод МК. Модуль датчика температуры ds18b20 применяется для измерения температуры воздуха в помещении и на открытом воздухе. Используется как удобное средство установки микросхемы ds18b20 в контролируемых точках. Хорошо подходит для изучения МС ds18b20. С помощью датчика KY-001 собирают комнатные термометры и автоматические метеостанции. Модуль KY-001 неотъемлемая часть систем класса умный дом.
 
Характеристики

Питание
            напряжение 3…5,5 В
            ток 10 мА
Диапазон измерения температуры -55…125 °С
Разрешающая способность 9…12 бит
Точность ±0,5 °С в диапазоне -10…+85 °С
Время измерения при разрешающей способности 12 бит составляет 0,75 с
 
Компоненты
 
Микросхема ds18b20.
 
Описание работы, регистров, питания. Формат информационной посылки. Память, конфигурирование, инициализация, команды. Пример программы для PIC16. Характеристики, вычисление контрольной суммы. Все это содержится в описании производителя.
Скачать файл описания на русском языке.
 
Резистор.
 
R1 сопротивлением 4,7 кОм выполняет функцию ”подтягивания” уровней лог. 1 выходного цифрового сигнала до величины напряжения питания.
 
Светодиод.
 
На плате модуля KY-001 размещен светодиодный индикатор включения питания.
 
Контакты KY-001, подключение
 
Контакт промаркированный I – соединяется с общим проводом.
Средний контакт в соединителе – питание.
Контакт S – выход данных.
 
Возможно два варианта питания. Обычное питание, когда полюса соединяются со средним контактом и промаркированным I. Второй вариант – паразитное питание, берущееся с информационной шины. При паразитном питании для подключения достаточно 2 провода в отличии от обычного когда требуется 3 провода.
 
При построении сложных систем на базе Arduino применяют специальные платы расширения. Есть несколько версий для различных модификаций ардуино позволяющие подключить модуль датчика температуры ds18b20.
Для Arduino UNO
Для Arduino MEGA
Для Arduino UNO R3 и Arduino Nano V3.0
Их контакты в области digital IO ports объединены в по группы, имеющие 3 контакта. Очередность расположения контактов совпадает с назначением контактов модуля, что позволяет легко выполнить соединение.
 
Программирование
 
Для работы с Arduino следует скачать и установить программную библиотеку содержащую программу DS18B20. Также программы для Ардуино и Raspberry Pi 2 здесь.
 
Электронный термометр c ЖКИ индикатором


Пример кода:

#include
 
// DS18S20 Temperature chip i/o
OneWire ds(10);  // on pin 10
 
void setup(void) {
  // initialize inputs/outputs
  // start serial port
  Serial.begin(9600);
}
 
void loop(void) {
 
  //For conversion of raw data to C
  int HighByte, LowByte, TReading, SignBit, Tc_100, Whole, Fract;
 
  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];
 
  if ( !ds.search(addr)) {
      Serial.print("No more addresses.\n");
      ds.reset_search();
      return;
  }
 
  Serial.print("R=");
  for( i = 0; i < 8; i++) {
    Serial.print(addr[i], HEX);
    Serial.print(" ");
  }
 
  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.print("CRC is not valid!\n");
      return;
  }
 
  if ( addr[0] == 0x10) {
      Serial.print("Device is a DS18S20 family device.\n");
  }
  else if ( addr[0] == 0x28) {
      Serial.print("Device is a DS18B20 family device.\n");
  }
  else {
      Serial.print("Device family is not recognized: 0x");
      Serial.println(addr[0],HEX);
      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
 
  Serial.print("P=");
  Serial.print(present,HEX);
  Serial.print(" ");
  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
    Serial.print(data[i], HEX);
    Serial.print(" ");
  }
  Serial.print(" CRC=");
  Serial.print( OneWire::crc8( data, 8), HEX);
  Serial.println();
 
  //Conversion of raw data to C
  LowByte = data[0];
  HighByte = data[1];
  TReading = (HighByte << 8) + LowByte;
  SignBit = TReading & 0x8000;  // test most sig bit
  if (SignBit) // negative
  {
    TReading = (TReading ^ 0xffff) + 1; // 2's comp
  }
  Tc_100 = (6 * TReading) + TReading / 4;    // multiply by (100 * 0.0625) or 6.25
 
  Whole = Tc_100 / 100;  // separate off the whole and fractional portions
  Fract = Tc_100 % 100;
 
 
  if (SignBit) // If its negative
  {
     Serial.print("-");
  }
  Serial.print(Whole);
  Serial.print(".");
  if (Fract < 10)
  {
     Serial.print("0");
  }
  Serial.print(Fract);
 
  Serial.print("\n");
  //End conversion to C
}

Официальный сайт 

Техническое описание, библиотеки, примеры программ

Рекомендуем
Sensor Shield for Arduino

Sensor Shield V4.0 for Arduino  Sensor Shield V5 for Arduino  Sensor Shield V2.0 for Arduino

 
Контакты:
  • Pin - = connect to Arduino GND
  • Pin (middel) = connect to arduino +5V
  • Pin S = Signal, in this example connect to Arduino Digital port 10
Вверх