27 _wire_index=wire_index;
29 virtual const __FlashStringHelper* Name()
33 virtual float LowMeasurementLimit()
37 virtual float HighMeasurementLimit()
41 virtual int Precission()
45 virtual bool Measure(
float & ret_data)
49 ret_data=(float)rand()/RAND_MAX*5+15;
58 float celsius, fahrenheit;
61 for(
int i=0;i<_wire_index;i++)
65 isError=!ds->search(addr);
68 Serial.print(F(
"No more addresses:"));
95 if (OneWire::crc8(addr, 7) != addr[7]) {
96 Serial.println(F(
"CRC is not valid!"));
104 Serial.println(F(
" Chip = DS18S20"));
112 Serial.println(F(
" Chip = DS1822"));
116 Serial.println(F(
"Device is not a DS18x20 family device."));
127 present = ds->reset();
134 for ( i = 0; i < 9; i++) {
135 data[i] = ds->read();
147 int16_t raw = (data[1] << 8) | data[0];
150 if (data[7] == 0x10) {
152 raw = (raw & 0xFFF0) + 12 - data[6];
155 byte cfg = (data[4] & 0x60);
157 if (cfg == 0x00) raw = raw & ~7;
158 else if (cfg == 0x20) raw = raw & ~3;
159 else if (cfg == 0x40) raw = raw & ~1;
162 celsius = (float)raw / 16.0;
163 fahrenheit = celsius * 1.8 + 32.0;
174 out<<F(
"DS18B20: ")<<ret_data<<endln;
DS18B20-Temperature sensor. To use this sensor OneWire library has to be installed from http://www...
Definition: DS18B20Sensor.h:14