Estoy usando el RTC DS1307 junto con arduino y esta biblioteca enlace
Cuando enciendo el chip directamente desde las salidas de 5V y GND de mi arduino UNO, todo funciona bien.
Cuando enciendo el chip con un pin digital con salida configurada en ALTO para la entrada de voltaje y / o un pin digital con salida configurada en BAJA para GND, la biblioteca no puede leer la hora del RTC.
Esta misma configuración exacta funciona con la biblioteca proporcionada por adafruit enlace
Pero me gustaría usar la biblioteca rweather porque proporciona más funciones (como un acceso más fácil a la memoria RAM y una función de conveniencia de alarma), también está mucho mejor escrito y bien documentado.
El siguiente código funciona con ambas bibliotecas, pero solo falla con la biblioteca rweather cuando no se usan 5V y GND directamente. Al comenzar con 5V y luego cambiar a un pin de salida, la biblioteca puede leer la hora, por lo que parece que esto está relacionado con un problema de inicio de algún tipo.
#include <Wire.h>
#include <RTC.h>
#include <SoftI2C.h>
#include <DS1307RTC.h>
void setup()
{
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
// provide power for the RTC module
Serial.begin(9600);
Serial.print("Setting output\n");
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
Serial.print("output Set\n");
delay(2000);
Serial.print("delay over\n");
SoftI2C bus(5, 4);
DS1307RTC controller(bus, 3);
Serial.print(controller.isRealTime() ? "controller is realtime" : "controller is simulating");
Serial.println();
RTCTime theTime;
controller.readTime(&theTime);
Serial.print("startup time");
Serial.println();
Serial.print(theTime.hour);
Serial.print(":");
Serial.print(theTime.minute);
Serial.print(":");
Serial.print(theTime.second);
}
void loop()
{
}