Codey OnlineArduino & ESP32 component library › DS3231 Real Time Clock Module I2C
DS3231 Real Time Clock Module I2C
Sensors

DS3231 Real Time Clock Module I2C

Real time clock module DS3231 chip I2C

Width: 46.2 mm

Pinout — DS3231 Real Time Clock Module I2C

Pin Signal Description
32K clock 32.768 kHz clock output from the DS3231 RTC for external timing use.
SQW interrupt RTC square-wave or active-low alarm interrupt output from the DS3231.
SCL SCL I2C serial clock line for communication with the DS3231 RTC.
SDA SDA I2C serial data line for communication with the DS3231 RTC.
VCC power Main power input for the RTC module, typically 3.3 V to 5 V.
GND ground Ground reference for power and I2C signals.
SCL.1 SCL Duplicate I2C serial clock connection for the DS3231 RTC.
SDA.1 SDA Duplicate I2C serial data connection for the DS3231 RTC.
VCC.1 power Duplicate main power input for the RTC module, typically 3.3 V to 5 V.
GND.1 ground Duplicate ground reference for power and I2C signals.

Example wiring diagram — DS3231 Real Time Clock Module I2C

From To Wire
board:5V x1:VCC red
board:GND x1:GND black
board:SCL x1:SCL green
board:SDA x1:SDA blue

Example Arduino code — DS3231 Real Time Clock Module I2C

This example was written and compile-checked for the arduino-uno. Codey Online adapts it to any other supported board for you.

#include <Wire.h>
#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  Wire.begin();

  if (!rtc.begin()) {
    Serial.println("Couldn't find DS3231 RTC module");
    while (1) {
      delay(10);
    }
  }

  // If the RTC lost power, set it to the compile time.
  if (rtc.lostPower()) {
    Serial.println("RTC lost power, setting the time to compile time.");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  Serial.println("DS3231 RTC example started.");
}

void loop() {
  DateTime now = rtc.now();

  Serial.print("Date: ");
  Serial.print(now.year());
  Serial.print('-');
  if (now.month() < 10) Serial.print('0');
  Serial.print(now.month());
  Serial.print('-');
  if (now.day() < 10) Serial.print('0');
  Serial.print(now.day());

  Serial.print("  Time: ");
  if (now.hour() < 10) Serial.print('0');
  Serial.print(now.hour());
  Serial.print(':');
  if (now.minute() < 10) Serial.print('0');
  Serial.print(now.minute());
  Serial.print(':');
  if (now.second() < 10) Serial.print('0');
  Serial.println(now.second());

  delay(1000);
}

Related components

18650 Battery Shield with USB-C Charger and 5V Boost Converter

18650 Battery Shield with USB-C Charger and 5V Boost Converter

2.4 inch OLED Display I2C 3.3V

2.4 inch OLED Display I2C 3.3V

3.5 inch TFT LCD Shield

3.5 inch TFT LCD Shield

50kg Load Cell Weight Sensor

50kg Load Cell Weight Sensor

Build your Arduino or ESP32 project with AI

Describe what you want to build. Codey Online writes the code, draws the wiring diagram, compiles it and flashes your board straight from the browser.

Start for free