#include "OneWire.h"
OneWire ds(7);
void setup() {
Serial.begin(9600);
}
byte i; // лічильник для циклів
byte data[9];
byte addr[8];
float celsius, fahrenheit;
void loop() {
ds.search(addr);
delay(250);
Serial.print("ID =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1);
delay(1000);
ds.reset();
ds.select(addr);
ds.write(0xBE);
for ( i = 0; i < 9; i++) { // запис дати з датчика
data[i] = ds.read();
}
Serial.println();
int16_t raw = (data[1] << 8) | data[0];
raw = raw << 3; // Роздільна здатність 9 біт за замовчуванням
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
celsius = (float)raw / 16.0;
Serial.print(" Celsius = ");
Serial.println(celsius);
Serial.println();
delay(2000);
}