Introduction: Cheap 7 Segment Clock (cardboard Clock)

Hey everyone! I build "screen" from cardboard, and i want to show how to make it. It has 4 digits and between them is two dot. It´s very cheap, and you need only 30 leds, cardboard and some transistors. If you want to do something without using lot of money, this is good project for you :) Lets begin!

Step 1: What You Are Going to Need:

You need in this project some tools:

-Soldering station and solder

-Wire strippers (and a lot of wire, depends how big screen you want to do)

-Something to cutting wires

And some parts:

-30 Leds, i used 30 white superbright leds that i removed from my old project (Chinese leds can be sometimes messy, and colors are not the same. If you want better looking leds, check example Adafruits leds gategories!)

-4 transistors to drive digits, 5 if you want to use dots separately.

And if you want to control this thing you will need:

-Some kind of microcontroller, i used in this project Arduino Nano V3.0 (ATmega328)

-DS3231 to tell the time to Arduino, i bought it from ebay

-9 resistors to led´s so they don't burn out!

-Computer or something to write and upload the code to the microcontroller

And that's all! This is cheap project and if you can disassemble those parts from something, you can build this free! (but you have to still get those wires somewhere)

Let's begin building this thing up!

Step 2: Building the Frame

Okay, now we have parts, so we can start. Here is picture, how to make segments frame and dot frame. Red areas are places where we put the leds. I have already build this up, but i think i have to build one more to show you how to make this.

I used A4 paper, and i cut it to 4 parts. Then i glued cardboard strips to paper, like in the red and white photo. Make sure your cardboard is high enought and you glue it straight up! When you have all parts ready, glue two digits together, same sided, and glue that dot thing to it. Then just glue the last two segment to it and it is ready!

Then i clued and wired leds to every segment(You can see them from first picture! Every red area is "segment"!). You have to connect all same segments' leds together, and same digits led's cathodes together. That colorfull picture shows how to connect them, same color anodes together.

My english is bad, so you have to maby guess what i'm explaining. Sorry about that.7

Next step is coding! Yay!

Step 3: Connecting Arduino and Writing the Code

Now we have builded the screen, and now we have to make it work! I wrote code to you, so you can just download it. Now i'm showing you how to connect this thing to Arduino.

Connect segments a-g to Arduino pins 2-8 trought resistor!!! It's important to use resistors! You can calculate the resistance with voltage of power supply(5v), led's voltage (usually 2-3v) and led's current. First minus led's voltage(volts) from power supply's voltage(volts), and divide it with led's current(Amps). Then you got the resistance ;).

Then connect digits with transistors. It's important to use transistor, so you are not taking power directly from Atmega328! It could damage your Arduino. I didn´t use transistors, because i don't have. But i ordered 100x npn transistor(2N3904)with only 1 EUR (around 1.13USD)!

Last step is connecting rtc(first you have to put the real time into it). It usually uses i2c, so you have to connect SDA to Arduino pin A4 and SCL to Arduino pin A5. I used DS3231, and it cost me 0.88 EUR (around 0.96 USD).

You need to download ds3231s' library from here:

We are done! I'm little nervous because my bad English, but i hope you understand something about this.

Happy new year to everyone!

snowy1998 made excellent schematic, (please notice -vcc = gnd) so i would like to share it to everyone! Thanks!


edited 1.1.2016:

I noticed that i haven't used transistors in this code, so my code puts every digit pin low, when the digit is on. I fixed that by changing LOW and HIGH places. I will upload both of codes if you like, but i'm not sure is it necessary because it can damage your Arduino.


Karavan (author)2016-04-13


Buttons for correction of time/date and for date display aren't provided?

Qu4l1ty (author)Karavan2016-04-13

No, it has only output for time, that you have already put in your rtc.

Karavan (author)Qu4l1ty2016-04-13

Not good is when you cannot adjust the time/date without a PC.

snowy1998 made it! (author)2016-02-25

breadboarded out, looks great

snowy1998 (author)2015-12-31

Still confused on segment adressing, you are using 7 address lines to control 30 segments, could you explain further?

Qu4l1ty (author)snowy19982015-12-31

Hi! I use multiplex to drive the matrix, first we put example number one to the screen, and we put first digit on. then we shut the first digit and write second number, and turn second digit on, and so on. I'm now looking for something to demostrate it. Can you tell more details about part you don't understand? Btw Happy new year!

snowy1998 (author)Qu4l1ty2015-12-31

ok, i get the mux idea, 7 segments - 7 lines, but where do the cathode control lines connect to for each digit, thats the bit i am unclear about. would be better if you could include a wiring schematic

snowy1998 (author)snowy19982015-12-31

Ok, so i look through your Arduinno code and realised you where tieing each digit to another set of pins. I've knocked up a circuit diag of how i think you've done it, but if you could look and let me know it would be appreciated, thanks

Qu4l1ty (author)snowy19982015-12-31

It looks perfect! Can i use it in my project, please? That was awesome!

dvigatel (author)2015-12-31

How simple and impressive.

Qu4l1ty (author)dvigatel2015-12-31


Qu4l1ty (author)2015-12-31

Thanks for telling! Without you it would still be there!