Duda con memoria eeprom

Hola, estos dias he estado trabajando en un trabajo del instituto que consiste en lo siguiente:
Usar sensores DS18B20 con protectores termicos conectados a una arduino nano para que envien la informacion a una eeprom externa modelo I2C, dicha informacion seria enviada gracias a dos botones, uno en la derecha y otro en la izquierda, el de la derecha permitiria selecionar el tiempo entre mesuras variando entre 1 hora, 2 o 3, y el boton izquierdo serviria para confirmar la orden mencionada anteriormente. Esta informacion seria enviada con un cable usb hacia un ordenador portatil.
Dado a unos problemas he tenido que convertir los floats que recibian los sensores a bytes para que se pudieran enviar correctamente a la eeprom. El codigo era usado anteriormente para que solo leyera 10 lecturas y las enviara por el serial de la aplicacion pero ahora no puedo usar esto ya que tengo que usar los pulsadores.
He tenido una idea, definir la address 0 para que se guarde ahi el numero de lecturas hechas durante el tiempo y que guarde los bytes en las address 1,2,3,4(los floats se dividiran en los numeros enteros y decimales y seran convertidos en bytes.).
Alguna idea para definir la address 0 como el sitio donde guardar el numero total de muestras?
Gracias
Ahora mismo tengo el codigo tal que asi:

#include <Wire.h>    
#include <OneWire.h>
#include <DallasTemperature.h>

#define disk1 0x50    //Address of 24LC256 eeprom chip
 // Data wire is plugged into pin 10 on the Arduino
#define ONE_WIRE_BUS 9
 
// Setup a oneWire instance to communicate with any OneWire devices 
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
 //definim variables
 byte temps_entre_mesures=0;
byte temp_enter;
byte temp_decimal;
float temp_aire;
float temp_aigua;
unsigned int address = 0;
byte prova;


void setup(void)
{
Serial.print("Tria temps entre mesures(hores)  ");
Serial.println("boto dret====>+hores, boto Esquerra====>confirmar ");//definim que fa cada boto
  //inici sensors
  pinMode(13,OUTPUT);
  Serial.begin(115200);
  pinMode(2,INPUT);// configurem sortida digital
digitalWrite(2,HIGH);// definim resistencia pullup

pinMode(4,INPUT);// configurem sortida digital
digitalWrite(4,HIGH);//definim resistencia pullup

  Serial.println("Granotes");
  Wire.begin();  
 // Start up the library
  sensors.begin();
}

void loop(){
  address=0;
  
  delay (1000);
while(digitalRead(4))
{
  if (!digitalRead(2))
  {//si s'activa el boto 1
    delay(1000);
    temps_entre_mesures++; // sumem 1 hora al apretar el boto
    Serial.print("Vols que es prenguin dades cada ");
    Serial.print (temps_entre_mesures);
    Serial.println(" hores?");
   }
 }
  Serial.println("confirmat");
while(1)
{
   for (int vegades=0;vegades<temps_entre_mesures;vegades++)
  {
    for (int segons=0;segons<100;segons++)
    {
      delay(10);    
     }
    }
  }

/*for (char i=0;i<10;i++)*/

  sensors.requestTemperatures(); // diguis que envii temperatures
  //llegeixo temperatures dels sensors
  temp_aigua= sensors.getTempCByIndex(0); // Why "byIndex"? 
  temp_aire= sensors.getTempCByIndex(1); // Why "byIndex"?     
  //Serial.println("Temperatures__________");
  //trossejo part entera i part decimal
  temp_enter=(byte)temp_aire;
  temp_aire=temp_aire-temp_enter;
  temp_aire=temp_aire*100;
  temp_decimal=(byte)temp_aire;
  writeEEPROM(disk1,address,temp_enter);
   delay(20);
  writeEEPROM(disk1,address+1,temp_decimal);
 
  delay(100);
  temp_enter=(byte)temp_aigua;
  temp_aigua=temp_aigua-temp_enter;
  temp_aigua=temp_aigua*100;
  temp_decimal=(byte)temp_aigua;
  writeEEPROM(disk1,address+2,temp_enter);
    delay(20);
  writeEEPROM(disk1,address+3,temp_decimal);
  delay(100);


  address=address+4;
  delay(100);
  

  //encendre led
  digitalWrite(13,HIGH);
  delay(200);
  digitalWrite(13,LOW);
 {
   address=4*i;
    //llegim part entera temp aire
  //llegir eeprom i enviar dades
  temp_enter=readEEPROM(disk1,address);
    delay(20);
  temp_decimal=readEEPROM(disk1,address+1);
    delay(20);
  temp_aire=temp_enter*100;
  temp_aire=temp_aire+temp_decimal;
  temp_aire=temp_aire/100;
 
  delay(50);
  temp_enter=readEEPROM(disk1,address+2);
  delay(20);
  temp_decimal=readEEPROM(disk1,address+3);
  delay (20);
  temp_aigua=temp_enter*100;
  temp_aigua=temp_aigua+temp_decimal;
  temp_aigua=temp_aigua/100;
   Serial.print(temp_aire);
  Serial.print("\t");
  Serial.println(temp_aigua);
  delay(50);
  
 }
}


void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data ) 
{
 // Serial.println(eeaddress);
  Wire.beginTransmission(deviceaddress);
  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
  Wire.write(data);
  Wire.endTransmission();
 
  delay(5);
}
 
byte readEEPROM(int deviceaddress, unsigned int eeaddress ) 
{
  byte rdata = 0xFF;
 
 
  Wire.beginTransmission(deviceaddress);

  Wire.write((int)(eeaddress >> 8));   // MSB
  Wire.write((int)(eeaddress & 0xFF)); // LSB
  Wire.endTransmission();
 
  Wire.requestFrom(deviceaddress,1);
  //Serial.println(deviceaddress);
 
  if (Wire.available()) rdata = Wire.read();
  return rdata;


 }

el problema aparece en : address=4*i; ya que la i no esta definida.