This is an old revision of the document!
Table of Contents
Temperature conversions
Fahrenheit to Celsius
C = (F - 32.0) / 1.8
Celsius to Fahrenheit
F = (C * 1.8) + 32.0
C source
float C_to_F_degrees( float temp )
{
return( (temp * 1.8) + 32.0 );
}
float F_to_C_degrees( float temp )
{
return( (temp - 32.0) / 1.8 );
}
Converting C to F for One Wire
unsigned int temperature;
float tempf;
tempf = 32.0 + (9.0*(float)temperature)/10.0;
temperature = tempf + 0.5; integer Fahrenheit
One Wire PH Anderson
LowByte = OneWireInByte(_1W_Pin);
HighByte = OneWireInByte(_1W_Pin);
TReading = (HighByte « 8) + LowByte;
SignBit = TReading & 0x8000; test most sig bit
if (SignBit) negative
{
TReading = (TReading ^ 0xffff) + 1; 2's comp
}
Tc_100 = (6 * TReading) + TReading / 4; multiply by (100 * 0.0625) or 6.25
Whole = Tc_100 / 100; separate off the whole and fractional portions
Fract = Tc_100 % 100;
if (n==0) if its the first time, clear the LCD
{
Serial.print(“?f”);
delay(100);
}
if (SignBit) If its negative
{
Serial.print(“-”);
}
Serial.print(Whole);
Serial.print(“.”);
if (Fract < 10)
{
Serial.print(“0”);
}
Serial.print(Fract);
Serial.print(“?n”);
}
delay(5000); 5 second delay. Adjust as necessary
}