Skip to main content

wokwi-ds1307 Reference

RTC (Real Time Clock) module with I2C interface and 56 bytes of NV SRAM.

Pin names

NameDescription
GNDGround
5VPositive voltage (5V)
SDAI2C data line
SCLI2C clock line
SQWSquare wave output

The I2C address of the DS1307 is 0x68.

Attributes

NameDescriptionDefault value
initTimeInitial time of the RTC: "0", "now", or a valid ISO 8601 date string"now"

Simulation Behavior

The simulated DS1307 is automatically initialized to the current system time when starting the simulation. It then keeps counting the time. You can override the initial time by setting the initTime attribute to a different value. The value can be either a valid ISO 8601 date string (e.g. "2019-11-19T11:41:56Z"), or one of the following special values:

  • "0" - Set the initial time to "2000-01-01T00:00:00Z"
  • "now" - Set the initial time to the current system time

Note that "Z" at the end of the date string indicates that the time is in UTC, and not in the local time zone. If you omit the "Z", the time will be interpreted as local time.

The code running in the simulation can update the date/time of the DS1307, and the DS1307 will keep track of the updated time.

Square Wave Output (SQW)

The SQW pin can output a square wave signal at one of four frequencies, or a static high/low level. Using the RTClib library, you can configure the SQW output with writeSqwPinMode():

ModeOutput
DS1307_OFFLOW
DS1307_ONHIGH
DS1307_SquareWave1HZ1 Hz
DS1307_SquareWave4kHz4.096 kHz
DS1307_SquareWave8kHz8.192 kHz
DS1307_SquareWave32kHz32.768 kHz

Example

To enable a 1 Hz square wave output:

#include <RTClib.h>

RTC_DS1307 rtc;

void setup() {
rtc.begin();
rtc.writeSqwPinMode(DS1307_SquareWave1HZ);
}

void loop() {
// Your code here
}

Simulator examples