DS18B20

Материал из Записки на полях
Перейти к навигации Перейти к поиску

DS18B20 - цифровой датчик температуры, работающий по протоколу 1-wire

  1. Датчик может обеспечивать 9-, 10-, 11-, 12-ти битное разрешение измерения температуры в градусах Цельсия. Это разрешение мы можем выбирать, записывая соответствующие данные в конфигурационный регистр датчика (по умолчанию 12-битное разрешение).
  2. Измеряет в диапазоне -55...+125оС. С точностью 0.5 градуса.
  3. На единицу кода преобразованного значения температуры приходится 0.0625оС.
  4. При чтении данных с датчика мы принимаем 9 байт данных, из которых мы будем брать 0-й и 1-й, младший и старший байт температуры соответственно. В старшем байте в битах 11-15 содержится информация о знаке температуры (если в этих битах единица, тогда температура ниже нуля).
  5. Команды для работы с датчиком. Т.к. у нас будет одно устройство на линии, поэтому нам не нужен 64-битный код датчика, поэтому пропустим код и воспользуемся командой - Skip ROM (0xCC). Команда преобразования температуры - Convert T (0x44). Команда чтения данных - Read Scratchpad (0xBE).
  6. Время преобразования температуры с 12-битной точностью занимает max 750мс. Т.е. это время нужно будет подождать после вызова команды преобразования температуры (0х44) и только потом посылать следующую команду.
  7. После преобразования температуры, прежде чем посылать следующую команду нужно еще раз послать импульс сброса (Reset pulse) и получить ответный импульс (Presence Pulse).

Распиновка

Kontakty ds18b20.jpg

Ссылки

  1. Datasheet