Introduction: 7 Segment Clock Version 2

About: come visit me!


After a request from Instructables user regarding availability of 12h format, i took advantage to make substancial changes to the original project.

During using of the version 1 i felt the need to make a stand-alone version, so I made it possible to modify all the parameters directly from the clock, without using the PC.

For anyone hasn't read my previous instructables, it's a common 7 segment led clock with some extra features:

  1. 7 different minute change transitions
  2. 3 pre-setted colors for time slots
  3. ambient light intensity auto dim
  4. auto shutdown/start when there is no need to show time
  5. auto daylight saving time adjustment

Version 2 allow you also to:

  • change time format 12/24h
  • easily modifiable parameters

The parameters that can be modified directly from the clock are:

  • wake up/shutdown time
  • colors for time slots
  • date/time
  • time format 12/24h

These data are now stored inside Arduino eeprom together with the chosen transition mode. I've also prepared a quickstart guide in the next step.

The frame is 3D printed, powered by an Arduino Nano, DS3231 and WS2812 leds.


  • Arduino nano
  • photo chell
  • 2 x momentary pushbutton
  • on/off switch
  • DC plug
  • 5V transformer
  • n°30 WS2812 leds (model 30 leds/meter)
  • pcb
  • DS3231 module
  • thin cables for leds connections
  • resistors 10K, 550
  • solder
  • glue
  • jumpers
  • headers male/female

Step 1: WHAT'S NEW

As said, I didn’t want to connect the clock to the PC every time i wanted to change parameters then, adding a momentary pushbutton to the project i've easly reached the target. With one button i can scroll between the options, the other is to confirm data and go ahead inside the menu. I've also connected photocell to an Arduino PIN instead of +5V so when clock goes into sleep mode photocell circuit doesn't drain power. I finally made it more professional etching the circuit on a copper plate.

Step 2: PCB Assembling

For convenience i've changed some connections, see schematic. ON/OFF switch is optional, to enter inside menu without that just connect +5V holding down button 1.

The resistance between leds and D5 is 550Ohm, the other 10Kohm.

The circuit is very easy and doesn't need to be etched.

In my project each segment for each digit needs one led. For larger projects could be added more leds for segment after modifyng the library "segment_display.cpp"

For other info regarding LED sequence and other check version 1

Step 3: 3D Printing

Starting from the original version (Thanks to Thingverse user random1101), i've redesigned the support customizing it with a bar code (that means ACMECORPORATION but bar-code reader won't recognize it....sob).

It's recommended glue each digit after placing inside its slot.

Step 4: The Sketch

Libraries remain unchanged and the first time that you upload and run the sketch nothing could happen because it reads data from eeprom and, probably, inside your eeprom there could be random values. Then for first time run you need to set data.

Transition mode is now stored inside eeprom.

During data entry, follow the time format scrupulously (actual or winter 24h time format).

Check previous version for library info and usage.

Remix Contest

Participated in the
Remix Contest