In many microcontroller projects, you need some non-volatile memory – which preserves data even when power is off. A most popular type of such memory is Flash or EEPROM. Many MCUs like AVR or PIC already have some EEPROM inside chip that may suit your needs. But in many cases, it is not included, and you may need to connect it externally. EEPROMs with I2C interface is very common in such situation as they don’t need lots of I/Os (only two wires). If you decided to add an EEPROM chip into your project, check out the handy guide on how it works written by Jesus Echavarria. As an example, he took 24LC256 EEPROM which capacity is 32K x 8 bytes. The chip works in pretty wide voltage range – between 1.7V and 5.5V which is great either for 3.3V or 5V setups.
He covers all the basic things you need to consider, including selecting proper chip slave address in I2C line. Then performing reading and writing EEPROM data in byte and page modes. This guide might serve as a nice snippet for your next project, so you don’t have to scratch head if something goes wrong.