Librería Arduino para manejar los RTC DS1307 y DS3231 y la EEPROM integrada AT24C32 y compatibles

He creado una librería muy básica para manejar los RTC bajo I²C DS1307 y DS3231 y la EEPROM que traen integrada AT24C32 y compatibles.

Básicamente consiste de una clase que sirve para leer los datos del RTC, guardar un nuevo valor y hacer read y write de 1 byte en la EEPROM.


Integra opciones para desactivar el SET del RTC y toda la funcionalidad de la EEPROM si se desea ahorrar espacio de programa.

https://bitbucket.org/naguissa/arduino-rtclib/overview


Un ejemplo de uso sería:

#include 
#include


RTCLib rtc;
unsigned int pos;

void setup() {
  Serial.begin(9600);
  Serial.println("Serial OK");
//  Max position: 32767
  for(pos = 0; pos < 1000; pos++) {
    rtc.eeprom_write(pos, (unsigned char) pos % 256);
  }
// Only used once, then disabled
//  rtc.set(0, 8, 17, 1, 5, 4, 15);
  // RTCLib::set(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year)

  pos = 0;
}

void loop() {
  rtc.refresh();
  Serial.println();
  Serial.print("RTC DateTime: ");
  Serial.print(rtc.year());
  Serial.print('/');
  Serial.print(rtc.month());
  Serial.print('/');
  Serial.print(rtc.day());
  Serial.print(' ');
  Serial.print(rtc.hour());
  Serial.print(':');
  Serial.print(rtc.minute());
  Serial.print(':');
  Serial.print(rtc.second());
  Serial.print(" DOW: ");
  Serial.print(rtc.dayOfWeek());
  Serial.print(" ---- ");
  Serial.print(pos);
  Serial.print(": ");
  Serial.print(rtc.eeprom_read(pos));
  Serial.println();
  pos++;
  pos %= 1000;
  delay(99);
}