Known Bugs
The DS18x20_Temperature does not properly handle negative Celsius temperatures. Remove "unsigned" from the raw variable on line 88, for correct results below zero degrees Celsius.

The DS18x20_Temperature does not properly handle lower resolution (faster) modes on some chips. Thanks to Pete Hardie for this fix. Replace this:

Известные ошибки
DS18x20_Temperature не правильно обрабатывать отрицательные температуры по Цельсию. Удалите "unsigned" из raw переменной в строке 88, 
для правильного результата ниже нуля градусов по Цельсию.

DS18x20_Temperature не правильно обращаться с низким разрешением (fast) режимах на некоторых чипах. 
Благодаря Pete Hardie для исправления. Заменить это:

  } 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
  }

With this:

  } else {
    unsigned char t_mask[4] = {0x7, 0x3, 0x1, 0x0};
    byte cfg = (data[4] & 0x60) >> 5;
    raw &= ~t_mask[cfg];
  }

