Getting to use EEPROM

OK I got it - but am still having difficulty with this - i understand that the limit number of the value is 255 but what if I need 700?

#include <EEPROM.h>

void setup() {

  Serial.begin(115200);
  Serial.println(" startng eeprom demo ");

}

void loop() {

  static int status = 0;

  if (status == 0) {
    writeDefaults(1, 15);
    writeDefaults(2, 30);
    writeDefaults(3, 60);
    writeDefaults(4, 700); 
    status++;
  }
  if (status == 1) {
    readDefaults();
    status++;
  }
  delay(1000);

}

void writeDefaults(int address, byte myInt) {
  Serial.print("defaults  ");
  byte hiByte = highByte(myInt); //breaks up into into 2 bytes
  byte loByte = lowByte(myInt);
  EEPROM.put(address, myInt);

  Serial.print(" Done "); Serial.println(address);
}

void readDefaults() {

  int value;
  for (int x = 1; x < 5; x++) {
    value =  EEPROM.read(x);
    Serial.print(x);
    Serial.print("\t");
    Serial.print(value);
    Serial.println();
  }


}


use put and get directly with the data you want.
pack all the preferences into a structure and store the structure, that will make your life easier

here is an example

#include <EEPROM.h>
struct Configuration {
  char locationName[30];
  float temperature;
  int relativeHumidity;
};

const uint16_t EEPROM_ADDRESS = 0;

Configuration myConfiguration;

void printConfiguration(Configuration& aConfiguration) {
  Serial.print("Location Name: ");      Serial.println(aConfiguration.locationName);
  Serial.print("Temperature: ");        Serial.println(aConfiguration.temperature, 3);
  Serial.print("Relative Humidity: ");  Serial.println(aConfiguration.relativeHumidity);
  Serial.println("----------------------------");
}


void setup() {
  Serial.begin(115200);
  strlcpy(myConfiguration.locationName, "Paris", sizeof myConfiguration.locationName);
  myConfiguration.temperature = 17.6;
  myConfiguration.relativeHumidity = 67;

  Serial.println("Initial Configuration:");
  printConfiguration(myConfiguration);

  // save the config
  EEPROM.put(EEPROM_ADDRESS, myConfiguration);

  // modify the configuration
  strlcpy(myConfiguration.locationName, "London", sizeof myConfiguration.locationName);
  myConfiguration.temperature = 12.6;
  myConfiguration.relativeHumidity = 95;

  Serial.println("Modified Configuration:");
  printConfiguration(myConfiguration);

  // Now read it back from EEPROM
  EEPROM.get(EEPROM_ADDRESS, myConfiguration);

  Serial.println("Configuration From EEPROM:");
  printConfiguration(myConfiguration);
}

void loop() {}

OK got it - thanks to you all

#include <EEPROM.h>

const byte E_Address[] = {1, 3, 5, 7};
const byte addressCnt = sizeof(E_Address);
const int E_Value [] = {15, 30, 60, 700};
const byte valueCnt = sizeof(E_Value);

void setup() {

  Serial.begin(115200);
  Serial.println(" startng eeprom demo ");

}

void loop() {

  static int status = 0;

  if (status == 0) {
    for ( int x = 0; x < addressCnt; x++) {
      writeDefaults(E_Address[x], E_Value[x]);
      Serial.print("Status ");Serial.println(status);
    }
 status++;
  }
  if (status == 1) {
    for ( int x = 0; x < addressCnt; x++) {
      readDefaults(E_Address[x]);
       Serial.print("Status ");Serial.println(status);
    }
 status++;
  } 

}
//----------------------------------------------------------

void writeDefaults(int address, int value) {
  Serial.print("write defaults  ");
  EEPROM.put(address, value);
  Serial.print(" address "); Serial.print(address);
  Serial.print(" value "); Serial.println(value);
}


void readDefaults(int address) {
  int value;
  EEPROM.get(address, value);
  Serial.print(address);
  Serial.print("\t");
  Serial.print(value);
  Serial.println();
}








Sorry to have to updare this but I am still having an issue:
here is the test code:

// Storing variables in EEPROM
// Sequential read / write of variables.
//
// NANO ATMEGA328P


#include <EEPROM.h>


#define EEADDR 166 // Start location to write EEPROM data.

unsigned int field1, field2, field3, field4;

void setup() {
  //**********************************************************
  // NEEDED to change from 4 mhz to 16 mhz on this NANO ONLY
  cli();
  CLKPR = 0x80;
  CLKPR = 0x01;
  sei();
  //**********************************************************



  Serial.begin(38400);    // FOR THIS NANO ONLY
  Serial.println("EEPROM variable read and write.");

  field1 = 40;
  field2 = 80;
  field3 = 120;
  field4 = 200;

}

void loop() {

  static int status = 0;

  if (status == 0) {
    int r = random(100, 65535);
    field1 = r;
    field2 = r + 1;
    field3 = r + 2;
    field4 = r + 3;
    writeEE();
    status++;
  }
  if (status == 1) {
    readEE();
    status++;
  }
}

void writeEE() {
  int EEAddr = EEADDR;
  EEPROM.put(EEAddr, field1); EEAddr += sizeof(field1);
  EEPROM.put(EEAddr, field2); EEAddr += sizeof(field2);
  EEPROM.put(EEAddr, field3); EEAddr += sizeof(field3);
  EEPROM.put(EEAddr, field4); EEAddr += sizeof(field4);
  Serial.println("EEPROM Written");
  show_vars();

}
void readEE() {
  int EEAddr = EEADDR;
  EEPROM.get(EEAddr, field1); EEAddr += sizeof(field1);
  EEPROM.get(EEAddr, field2); EEAddr += sizeof(field2);
  EEPROM.get(EEAddr, field3); EEAddr += sizeof(field3);
  EEPROM.get(EEAddr, field4); EEAddr += sizeof(field4);
  Serial.println("EEPROM READ");
  show_vars();
}

void show_vars(void) {
  Serial.print("1 "); Serial.println(field1);
  Serial.print("2 "); Serial.println(field2);
  Serial.print("3 "); Serial.println(field3);
  Serial.print("4 "); Serial.println(field4);
}

the problem is when I read the EEPROM it does not show what was written ie

EEPROM variable read and write.
EEPROM Written
1 16907
2 16908
3 16909
4 16910
EEPROM READ
1 16910
2 0
3 16910
4 0