Based on Maxim-Dallas DS1307, this shield for Arduino allows you to have a precise system clock, thus relieving the CPU from the calculation and management of hourly data and freeing up space in program memory. The DS1307 is an integrated counter BCD (Binary Coded Decimal) low-power, counts seconds, minutes, hours, days, months and years, equipped with 56 bytes of nonvolatile static RAM. It can operate in either 12 or 24 hours, an indication of the morning hours (AM) and afternoon (PM). The information on the time and date are placed in a special register and transferred to the Arduino microcontroller via the I ² C-bus. The bus is connected to pin 5 (SDA) and 6 (SCL) which mate with the pins SCL and SDA of Arduino (UnoRev3 MegaRev3), which acts as a master unit of the I ² C-bus, while the DS1307 is the slave.
For old versions of Arduino (UnoRev2 or Arduino2009), SCL and SDA signals are available on pins A4 and A5, to make the shield also compatible with these versions, some solder pads are present on the copper side.
In the shield the output SQW (SQUARE WAVE) pilot a LED, making it blink at the same frequency of the square wave produced; also, via the jumper J1 can decide whether to read or not, through the line A3, the corresponding signal. Power supply: 5 Vdc (well regulated), consumption: 1.5 mA (down to 500 nA in battery operation).
As Library we used the ladyada library, modified (downloadable here RTCLib.zip) to manage the frequency of the flashing LED on the shield, driven from the SQW, to be exact we have added the command RTC.sqw (x ) where instead of x we have to write:
0 to disable the LED (always off)
1 for the LED flashes at 1 Hz
2 to pulsate the output to 4,096 kHz
3 to obtain from the 8192 kHz
4 to obtain from the 32,768 kHz