Hi,
Wondering if I might ask for some help making this code a bit less clumbsy 
Basically I have 8 TMP275 http://www.ti.com/lit/ds/symlink/tmp275.pdf Sensors each with its own I2C address (48 to 4F) and I am trying to read each in turn and then powering the arduino down to sleep for 5 mins before repeating - my function to read the TMPs is looking pretty bad so hoping there is a much nicer way....
The configuration register I am using hopfully sets ShutDown mode to save battery, 12 Bit mode for best resolution and one shot mode - ie 11100001
How would I best polish this bit of old rusty code into somrthing a bit less emabrassing?
#include <Wire.h>;
char tempHighByte;
char tempLowByte;
float temperature1;
float temperature2;
void setup()
{
Serial.begin(9600);
Wire.begin();
Serial.println("Starting.....");
}
void loop(){
Wire.beginTransmission(0x48);
Wire.write(1);
Wire.write(B11100001);
Wire.endTransmission();
Wire.beginTransmission(0x48);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(0x48,2);
delay(250);
tempHighByte = Wire.read();
tempLowByte = Wire.read();
int t = word(tempHighByte,tempLowByte)/16;
temperature1=t/16.0;
Serial.println(temperature11,4);
delay(1000);
Wire.beginTransmission(0x49);
Wire.write(1);
Wire.write(B11100001);
Wire.endTransmission();
Wire.beginTransmission(0x49);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(0x49,2);
delay(250);
tempHighByte = Wire.read();
tempLowByte = Wire.read();
int t = word(tempHighByte,tempLowByte)/16;
temperature2=t/16.0;
Serial.println(temperature2,4);
delay(1000);
//etc etc for all 8 I2C address
}
Wondering if I might ask for some help making this code a bit less clumbsy 
Sure. Look at these two blocks of code:
Wire.beginTransmission(0x48);
Wire.write(1);
Wire.write(B11100001);
Wire.endTransmission();
Wire.beginTransmission(0x48);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(0x48,2);
delay(250);
tempHighByte = Wire.read();
tempLowByte = Wire.read();
int t = word(tempHighByte,tempLowByte)/16;
temperature1=t/16.0;
Serial.println(temperature11,4);
and
Wire.beginTransmission(0x49);
Wire.write(1);
Wire.write(B11100001);
Wire.endTransmission();
Wire.beginTransmission(0x49);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(0x49,2);
delay(250);
tempHighByte = Wire.read();
tempLowByte = Wire.read();
int t = word(tempHighByte,tempLowByte)/16;
temperature2=t/16.0;
Serial.println(temperature2,4);
The only differences are the address of the sensor. Create a function that takes a sensor address and call it 8 times, instead of copying and pasting the same code 8 times.
The only differences are the address of the sensor.
and the name of the var holding the value 
and the name of the var holding the value
That would still be used to hold the value returned by the function.
Thanks Folks,
I have been trying to get the function below to work by passing the variables in on a function call like: readTMP275(1,0x48);
and hopefully having it return a float as the variable temp1 etc.
I think this could work but I expect my code falls down a little, expecially when I try to join the variable 'temp' with 'tmpX' at the end of the function - if this looks like a good option how would I write this to actually work 
void readTMP275(int tmpX, int tmpADD)
{
Wire.beginTransmission(tmpADD);
Wire.write(1);
Wire.write(B11100001);
Wire.endTransmission();
Wire.beginTransmission(tmpADD);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(tmpADD,2);
delay(250);
tempHighByte = Wire.read();
tempLowByte = Wire.read();
int t = word(tempHighByte,tempLowByte)/16;
temp[tmpX]=t/16.0;
}
most functions return a value that can be assigned to the variable of choice
float readTMP275(int Address)
{
Wire.beginTransmission(Address);
Wire.write(1);
Wire.write(B11100001);
Wire.endTransmission();
Wire.beginTransmission(Address);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(Address,2);
delay(250);
tempHighByte = Wire.read();
tempLowByte = Wire.read();
int t = word(tempHighByte,tempLowByte)/16;
return t/16.0;
}
...
temp[i] = readTMP275(0x49);
Thanks Rob,
I can see how that works - will give it a pop.
Now I just have to hope I got the I2C call on the TMP275 right 
at least now you have to fix it only in one place 
4 sure
... I'm slow learning how to speak NiceDuino rather ClunkDuino....