
My project is about autocorrection clock without RTC module.
About the project
I have designed a new Arduino clock which displays the time on seven segment displays. I combined an Arduino and DS1307 RTC module to complete the task.
Hardware list
- Arduino nano
- Seven segment display (common anode) *6
- SN74HC595 shift register * 2
- Bc547 Transistors (n p n) *6
- DS1307 RTC module
- 10k pullup resistor
- 100Ω resistor
- Breadboard and jumper wires
DS1307 RTC
To communicate with the RTC module, I have installed the #include <RTClib.h> library from the library manager. The RTC module talks with the Arduino through I2C communication. To join the I2C bus between Master and Slave, we connect Arduino analog pin A4 to the SDA pin of the RTC and the A5 pin of the Arduino to the SCL pin of the RTC, and add 10k pullup resistors.
Shift Register
I have used SN74HC595 shift registers because they can be controlled by the Arduino very easily. I have used one shift register to control the 7 segments of the displays and another shift register is used for multiplexing. Multiplexing is a technique for displaying different numbers on the displays and matrix.
Seven Segment Display
For this project, we need 6 7-segment displays to display the time. I am using a common anode type display.
Wiring
Complete the wiring with the help of my circuit and after you are done, check all the connections again to reduce errors.
Code
Copy my code and paste it into your Arduino editor and upload it to your Arduino board and your clock is ready.
Awesome
Success!
Author - Ramji Patel Jhansi
Expanded Technical Details
Multiplexed Numeric Chronometry
This project builds a professional desk clock using a large 4-digit 7-segment display and a high-accuracy timekeeping module.
- Common Cathode Multiplexing: To save pins, the Arduino rapidly cycles through each of the four digits (at >60Hz). By illuminating only one digit at a time but doing it faster than the human eye can see, the Arduino creates the illusion of a steady 4-digit display using only 12 digital pins.
- DS3231 RTC Precision: Captures the exact time via the I2C bus from a Real-Time Clock. The firmware handles the translation of the 24-hour time into a "Clock Bitmask" for the 7-segment segments.
User Configurable
- Daylight Savings Toggle: Features two physical buttons for setting the Hour and Minute manually, with the state saved to the Arduino's internal EEPROM to prevent loss during power outages.
Pictures










