
#define DS1621_ADDRESS 0x48

Wire.beginTransmission(DS1621_ADDRESS);
Wire.write(0xEE);
Wire.endTransmission();

Wire.beginTransmission(DS1621_ADDRESS);
Wire.write(0xAC);
Wire.write(0x00);
Wire.endTransmission();
Wire.beginTransmission(DS1621_ADDRESS);
Wire.write(0xAA);
Wire.endTransmission();
Wire.requestFrom(DS1621_ADDRESS, 2);
byte temp_msb = Wire.read();
byte temp_lsb = Wire.read();

float result = temp_msb;
if (temp_lsb & 0x80)
{
result += 0.5;
}

Wire.begin(8);
Wire.onReceive(receiveEvent);
String result;
bool i2c_ready = false;
void receiveEvent(int howMany)
{
i2c_ready = true;
result = "";
while (Wire.available())
{
char c = Wire.read();
result += c;
}
}
if (i2c_ready)
{
i2c_ready = false;
Serial.println(result);
}
#define ARDUINO_2 0x08
String str_temp = String(temperature);
Wire.beginTransmission(ARDUINO_2);
for (unsigned int i = 0; i < str_temp.length(); i++)
{
Wire.write(str_temp[i]);
}
Wire.endTransmission();

Wire.onRequest(requestEvent);
void requestEvent()
{
Wire.write(5);
Wire.write(6);
}
Wire.requestFrom(ARDUINO_2, 2);
String received_data = "";
received_data += Wire.read();
received_data += Wire.read();
onReceive gets triggered on both
if (howMany == 0)
return;

