Кстати, +85 это скорее всего не в датчике проблема:
*The power-on reset value of the temperature register is +85°C.Ищите плохой контакт )
*The power-on reset value of the temperature register is +85°C.Ищите плохой контакт )
#include <OneWire.h>
OneWire ds(1wirePin);
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte addr[8];
if (!ds.search(addr)) { // поиск нового датчика
ds.reset_search(); // если не нашли, сбрасываем поиск в начало
return; // и возвращаемся в самое начало главного цикла void loop(void)
}
// Часть кода, которая ниже, выполняется только если
// найден новый датчик, с которым ещё не работали в
// главном цикле до сброса поиска
if (OneWire::crc8( addr, 7) != addr[7]) { // Проверка CRC
Serial.print("CRC is not valid!\n");
return; // Если не пройдена, то в начало главного цикла и продолжаем поиск других датчиков
}
if (addr[0] != 0x28) { // Проверка того, что найденное устройство - температурный датчик DS18B20
Serial.print("Device is not a DS18B20 family device.\n");
return; // Если не он, то опять в начало главного цикла на продолжение поиска
}
ds.reset();
ds.select(addr);
// И вот после этого селекта делаем с очередным найденным датчиком что хотим
// После возврата в начало цикла поиск будет продолжен, пока не сработает первое условие и не выполнится ds.reset_search().
}
if (address[0] == 0x28)...
boa