user41044: #include<Wire.h>
#include<Eeprom24C32_64.h>
#define EEPROM_ADDRESS 0x000

void setup() {
  Serial.begin(9600);
  eeprom.initialize();
  const word address = 0x000;
  const byte count = 94;
  byte inputBytes[count] = { 0 };
  byte outputBytes[count] = { 0 };
  Serial.println("Read bytes from EEPROM memory...");
  eeprom.readBytes(address, count, outputBytes);
  Serial.println("Read bytes:");
  for (byte i = 0; i < count; i++) {
    Serial.write(outputBytes[i]);
    Serial.print(" ");
  }
  Serial.println("");
}

void loop() {
}

Next code... I have tried many sketches.
#include <EEPROM.h>

void setup () {
  Serial.begin (115200);
  Serial.println ();
  for (int addr = 0x0000; addr < 0x0010; addr++) {
    Serial.print ("Address = ");
    Serial.print (addr, HEX);
    Serial.print (", value = ");
    Serial.println (EEPROM.read(addr), HEX);
  }
}  // end of setup

void loop () {
}

And most of the sketches check the internal EEPROM of the Arduino, not the external, stored on address 0x000. I want to read data from external AT24C32.


user27653: You have to know what the I2C address of your EEPROM is. Right now you have
#define EEPROM_ADDRESS 0x000

The example from the library you cite has this:
/**************************************************************************//**
 * \def EEPROM_ADDRESS
 * \brief Address of EEPROM memory on TWI bus.
 ******************************************************************************/
#define EEPROM_ADDRESS 0x50

Then, you have to create an instance of the Eeprom24C32_64 object:
static Eeprom24C32_64 eeprom(EEPROM_ADDRESS);

That sets up the object for the EEPROM on the right I2C address, so you can later use the eeprom object to read and write.

41044: <pre><code>#include&lt;Wire.h&gt;
#include&lt;Eeprom24C32_64.h&gt;
#define EEPROM_ADDRESS 0x000

void setup() {
  Serial.begin(9600);
  eeprom.initialize();
  const word address = 0x000;
  const byte count = 94;
  byte inputBytes[count] = { 0 };
  byte outputBytes[count] = { 0 };
  Serial.println("Read bytes from EEPROM memory...");
  eeprom.readBytes(address, count, outputBytes);
  Serial.println("Read bytes:");
  for (byte i = 0; i &lt; count; i++) {
    Serial.write(outputBytes[i]);
    Serial.print(" ");
  }
  Serial.println("");
}

void loop() {
}
</code></pre>

<p>Next code... I have tried many sketches.</p>

<pre><code>#include &lt;EEPROM.h&gt;

void setup () {
  Serial.begin (115200);
  Serial.println ();
  for (int addr = 0x0000; addr &lt; 0x0010; addr++) {
    Serial.print ("Address = ");
    Serial.print (addr, HEX);
    Serial.print (", value = ");
    Serial.println (EEPROM.read(addr), HEX);
  }
}  // end of setup

void loop () {
}
</code></pre>

<p>And most of the sketches check the internal EEPROM of the Arduino, not the external, stored on address 0x000. I want to read data from external AT24C32.</p>

<p><a href="https://i.stack.imgur.com/2bnlo.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2bnlo.jpg" alt="enter image description here"></a></p>
 27653: <p>You have to know what the I2C address of your EEPROM is. Right now you have</p>

<pre><code>#define EEPROM_ADDRESS 0x000
</code></pre>

<p>The <a href="https://github.com/jlesech/Eeprom24C32_64/blob/master/examples/WriteReadBytes/WriteReadBytes.ino" rel="nofollow noreferrer">example from the library you cite</a> has this:</p>

<pre><code>/**************************************************************************//**
 * \def EEPROM_ADDRESS
 * \brief Address of EEPROM memory on TWI bus.
 ******************************************************************************/
#define EEPROM_ADDRESS 0x50
</code></pre>

<p>Then, you have to create an instance of the <code>Eeprom24C32_64</code> object:</p>

<pre><code>static Eeprom24C32_64 eeprom(EEPROM_ADDRESS);
</code></pre>

<p>That sets up the object for the EEPROM on the right I2C address, so you can later use the <code>eeprom</code> object to read and write.</p>
