As you know, the ATmega328P has 1 kB of onboard, EEPROM memory. This is sufficient to store 8×8 character defnition for 128 ASCII Charcters for example. To gain access to more non-volatile memory, the use of eternal EEPROM chips offers one solution. The 24LC256 IC you are required to use in this exercise is I2C (TWI) capabile so it offers an ideal entry point for your investigation of data storage.

Although this project asks that you log data that will eventually be plotted, you should consider how these chips simulate the use of disk drives that could support simple database concepts or even servers that could support messaging and web pages as two examples.

Session A.

(Hardware) After positioning your major components (DS1307RTC, TC74, 24LC256, and LCD and one or more other I2C devices) on your breadboard similar to the image to the right, wire a common bus containing the three I2C devices to your Arduino The I2C addressses of the RTC RTC, TC74, and EEPROM devices are 0x68, 0x48, and 0x50 respectively, so they coexist on the bus peacefully.

(Software) Create a folder called DataLogger. Within the folder, develop the project I2CSerialMonitor that includes the required I2C (TWI) libraries and initializes them in the setup() function. Your loop() function should confirm successful operation by reading and echoing the temperature, time and date data to the Serial Monitor every second.

(Hardware). Wire the LCD to your Arduino.

(Software). View this video. Implement the sketch I2CtoLCD.ino that results in functionality similar to the video.

Session B.

(Software: Wire-Level only). Develop the sketch EEPROMDisk.ino that logs and echoes the temp/time/date data to 24LC256 addresses every 2 sec to the Serial Monitor over a period of 1 min.

(Software). Implement a separate sketch EEPROM2LCD.ino that reads the data from the 24LC256 and echoes it to LCD.