Communicating between Arduino boards using I2C Interface

Hello everybody

I am working on a project that requires communication between 4 microcontrollers.

What I am currently using is a mega with each serial port attached to another microcontroller.
Now I think it is obvious that such alternative

a) uses a lot of wiring
b) adds significant overhead to the CPU

So I was thinking perhaps going a bit simpler and add I2C slave capability to each of the micros and query them individually would be much simpler. I already have the libraries all set up for EEPROM access so it's as easy as writing a line of code on the slave.

What options do I have for the slaves?

I'm not that expert, but i dont think eprom is what you are looking for.
I think you should follow wire.h examples. They are quite straight forward.

Piton:
I'm not that expert, but i dont think eprom is what you are looking for.
I think you should follow wire.h examples. They are quite straight forward.

Sorry for the confusion. Im using a wire function to read a particular address. In this case its used for an I2C memory, but could read anything else, by specifying the I2C address and the memory address.

uint16_t FRAMRead(uint8_t theMemoryAddress) 
{
  Wire.beginTransmission(FRAM_ADDR);
  Wire.write(theMemoryAddress);
  Wire.endTransmission();
  
  Wire.requestFrom(FRAM_ADDR,2);
  uint8_t lowByte = Wire.read();
  uint8_t highByte = Wire.read();

  return ((lowByte) & 0xFF) + ((highByte << 8) & 0xFF00);
}

So I would need to have my slave devices writing a given set of values that the master would query from time to time.