I've been hanging around a while now but now I've got a problem I can't seem to make sense of.
I recently bought a DS1307 RTC minitaure PCB off ebay and soldered it up (the pull up resistors and plug pins were loose) and attempted to run it with the RTClib library found here;
The circuit seems fine but when I open the serial monitor i get a single line of random symbols a few of which appear every second or so. It never starts a new line or gives anything remotely coherent. The PCB is not the same design as used on the above site, but the RTC itself is the same.
No problem. I've been able to solve a few problems by looking over the forums but not this one as of yet
Here's the code. Its just the same as in the RTCLib example. I know some people at least have been able to get this working. It's meant to print time every second.
Thanks
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 RTC;
void setup () {
Serial.begin(57600);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
//RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since 1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now.unixtime() + 7 * 86400L + 30);
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(3000);
}
I had this EXACT same problem. Turned out to simply be the baud rate. Make sure the number in the corner of the serial com is 57600 as it is in your code, Serial.begin(57600);