stevie135s
Created July 25, 2022 © GPL3+

DS3231 Oled Clock on Arduino Pro Mini

A 3v Arduino pro Mini clock using a DS3231 and Oled SSD 1306

BeginnerProtip344
DS3231 Oled Clock on Arduino Pro Mini

Things used in this project

Hardware components

Arduino pro Mini 3v
×1
Oled SSD 1306
×1
RTC DS3231
×1
Serial Adapter FT232RL
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Circuit

Easily connected on a standard breadboard. Connect 5v to the RAW pin on the Pro Mini

Code

Oled_Clock_on_DS3231_5

Arduino
Flash your esp using the Arduino IDE
#include <Arduino.h>
#include <DS3231.h>
#include <Adafruit_SSD1306.h>


DS3231 rtc(SDA, SCL);

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C 

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

String Dow,Dat,Tim,Last_Tim;
int Spc;

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
    rtc.begin();
    display.clearDisplay();
    display.setTextSize(2);
  }

void loop() {
Tim = rtc.getTimeStr();
if (Last_Tim != Tim) {
  Last_Tim = Tim;
  Dow = rtc.getDOWStr();
  Dat = rtc.getDateStr();
  Spc = 64 - ((Dow.length()*12)/2);

        
        display.setTextColor(SSD1306_WHITE);
        display.setCursor(18,0);
        display.print(Tim);
        display.setCursor(Spc,20);
        display.print(Dow);      
        display.setCursor(0,40);
        display.print(Dat);
        
        display.display();

        display.setTextColor(SSD1306_BLACK);
        display.setCursor(18,0);
        display.print(Tim);
        display.setCursor(Spc,20);
        display.print(Dow);
        display.setCursor(0,40);
        display.print(Dat);

  }
}

Credits

stevie135s
28 projects • 12 followers
I've been interested in microprocessors for a long time.
Contact

Comments

Please log in or sign up to comment.