Simple clock using RTC 1307 and four 7-segment led displays.

This is a simple clock using Arduino, RTC 1307 module, four 7-segment displays and a shift register.

7-segment displays must be common-anode displays. They are multiplexed in such a way that only one display is lit at any moment in time. The code switches between displays very quickly so blinking is invisible to a human eye.

Multiplexing significantly simplifies wiring and reduces the number of resistors and Arduino pins required however it affects display brightness since each display is on only 25% of the time.

Shift register is used to further reduce the number of used pins on the Arduino.

The clock displays time (hours and minutes) in 24h format and date when date button is pressed.

There are two versions of the code: 1) basic (nothing fancy - numbers on display just change as time goes on) and 2) code with 'rotation effect'. 'Rotation effect' means that at minute changes each digit scrolls through all 10 numbers before stopping at the right one.

This is a prototype which I later plan to develop into a nixie tube clock.