Introduction: Hard Disk Clock (HDD Clock With Arduino Uno)

This is a fun project that can be done easily and also cheaply. In this instructable we will explain step by step how to make this beautiful POV clock.

Used material:

  1. Arduino Uno,
  2. Tiny RTC modul,
  3. ULN 2003,
  4. IR diode and IR transistor (used like a sensor, more details in next steps)
  5. 4 pushbuttons (for controling the clock)
  6. TSOP4838 (allows us to control the clock with remote controler)
  7. Temperature sensor (DS18B20)
  8. RGB led strip
  9. Connectors,
  10. Paper,
  11. And of course and old hard disk with working motor.

Step 1: Begining (Disk, RGB, Sensor)

So before we get to the electronic part of this clock I want you to take your hard drive and with a screwdriver to remove the disks from the motor. The most important part of this clock believe it or not is the cut made on the one of the disks. This cut allows us to use POV effect. All this allows us to display the time.

To create this slot we have used the CNC machine. These discs are very difficult to cut, and because of that CNC machine needs plenty of time to get this done. We recomendo that you use a grinder for this cut. On the third picture there is an example how you shuld make this cut. Be sure not to cut entire side of disk, you should leave a few inches as shown in Fig 2.

Before you put the disk back on the motor you shuold mount RGB strip and sensor. Also i noticed that you can better see the time on clock when there is the white backgroud behind the disk.Take a sheet of paper and use one removed disc of the Hard drive to draw a circle. This should help you cut paper precisely. When you do that glue the paper for hard disk

For this clock we have used the photodiode and phototransistor as a sensor. Such a sensor with casing can be found in the printer, so we got one of those from an old printer.The role of the sensor in this clock is to tell microcontroller in which the position cut made on disk is.That way he is able to show time. You should use three wires and solder them for those 3 pins of the sensor.

You have to mount the sensor on the little white fellow marked red on the Fig 5 because the program is made for that position. And to be realistic, this is the easiest place to put him.

Now you can put the disk back.

Step 2: It's Time to Build

So in this step you can download eagle files with PCB. This boards are going to be places up front. One of them is used for powering the sensor and RGB strip. Second board is used for controling the clock with pushbuttons.

First pushbutton is used for entering the programing mode of the clock. After we activate it we can change hours (second pushbutton) and minutes (third pushbutton). When we want to change color of the clocks hand we use fourth pushbutton. Then with second pushbutton we can change color and with third the hand of the clock that we want to change.

You can see how to connect this boards in the eagle files.

Step 3: Connecting the Arduino

So now what you need to do is to connect Arduino. I have put my Arduino on the back of the hard disk as shown in the Fig. All the wires that are coming from the front PCB of the clock connect as explaind in the last Step. In this step you only have to connect tiny RTC modul. You can do that by connecting 5V, GND,SDA, SCL pins.

SDA pin connect to analog pin A4 on arduino, and SCL pin connecto to analog pin A5 on arduino.

It's time to program the Arduino and RTC. You first need to program the RTC. Download the RTC file and upload it to Arduino board. When you do that restart your arudino, start serial monitor and follow the instructions.

When you do that download final.ino and upload it to arduino board, and that is it. You only now have to power the clock and i recomend that you use PSU ( Power supply unit) because you need to power the hard disk circuit (and you need special connector for it) and for the clock you need to have 5V ( Arduino...) and 12V (RGB strip).

Step 4: Optional: Temperature Sensor and Remote Control

If you want to use temperature sensor then you have to use the remote control. Because that is the only way to tell the clock to show temperature (no pushbuttons on the front of the clock that can activate clock so that he show temperature). We used temperature sensor DS 18B20 and we recomend that you use the same. Connect the output of the sensor for pin 4 on the Arduino Board.

For the ir receiver we used TSOP 4838 and you should have some programing skils because in the program you have to define buttons that you want to use.TSOP is connected to pin 3 on arudino board.

In the end, what you really want is that your watch looks great. Create a housing and have fun.

If you have any problem or question feel free to ask.

Comments

author
Veda88 (author)2014-10-07

Be carefull with cutting the discs. Some discs are made out of something metal like (you can bend these discs easily with pliers. But there are also discs which are glass like, if you try to bend or cut them, they will explode in hundreds of small very sharp pieces.

author
ACVoltage (author)Veda882014-10-08

I did not know that there are different types of disks, so thank you for this. I hope that people who try to make this clock will pay atention on comments.

author
mircemk (author)2016-01-10

Final.ino is wrong sketch

Please upload good sketch

Thanks

author
majdi210187 (author)2015-08-13

Why i dont get any output for RGB pin 7,6, and 5? connect same circuit. But no connetion for temperature and IR remote.

author
Aljahwari (author)majdi2101872015-11-25

I am facing the same problem also. Is there any solution yet?

author
dancopy (author)2015-07-28

Hi aioria of mothi! You can, please send me also the files?
thanks

author
drose2112 (author)2015-01-15

Also where in the code do you change position of the sensor? I am using the Hall Effect sensor and want to locate it at the 6 position. I like the Hall Effect because you do not have the bulging IR sticking out.

author
drose2112 (author)2015-01-15

Awesome project! I made it and everything went smooth Except I noticed that your HD spins Counter Clockwise and Mine spins Clockwise which makes my clock go backwards. Is there a place in the code that we can reverse this?

author
UlrichS (author)2014-12-28

Hallo,

is it posible to download the sketch anyware ?

author
Jdukate (author)2014-11-18

I had a question, in materials needed you put ULN2003 but the circuit shows a ULA 2803 which one do I need to use? Ty in advance.

author
ACVoltage (author)Jdukate2014-11-18

You should use ULN 2003. When i was working on this shematic in eagle i couldn't find ULN 2003 in the eagle part list, so i just used 2083 that has same number of pins, and i just payed attention to the arrangement of pins.

author
Jdukate (author)ACVoltage2014-11-19

Also I was wondering what the values of Resistors 1-4 on the push buttons.

author
ACVoltage (author)Jdukate2014-11-19

These resistors are pull-down resistors and you can use any resistor in the range of 1k-10k ohm. I used 10k .

author
riccarr (author)ACVoltage2014-12-10

If you define in the arduino he pinMode for the buttons as INPUT_PULLUP, then internally the arduino will pull the button pin HIGH by default. Then you don't need a resistor. You would wire your button to go to GND. When you test the pin, you check for LOW, this indicates button is connected to ground, ie. its being pushed, otherwise its HIGH.

if (digitalRead(buttonPin) == LOW) //then button is pushed

author
Jdukate (author)ACVoltage2014-11-19

Thank you. By the way this is an awesome project.

author
lukis101 (author)2014-10-22

Good job on the clock! Also due to the large(wide) cutout on the platter, the image is really blurred. By making a narrow cut, you would be able to achieve higher resolution and make advanced clock faces. I have done one myself with an atmega328 @ 180 step resolution and full color (pwm-driven). It's a tough challenge to make a highly customisable, double-buffered and speed independent program with a 8-bit AVR :D

author
ACVoltage (author)lukis1012014-11-12

I agree.This clock is awesome no matter how you make it. But of course adding that little things makes the clock way better. :)

author
Raphango (author)2014-11-12

Awesome project man! =D

author
ACVoltage (author)Raphango2014-11-12

Thank you =)

author
aioria de mothi (author)2014-10-24

please help me, I can't open on my eagle! and can you send it to my email list of components, I want to make for my school project. thank you (wahyu_wahyudi31@yahoo.com)

author

I sent you a mail so if you have any other problems let me know.. :)

author
drmpf (author)2014-09-05

Nice Clock.

If you want a Android remote control and don't have the programming skills you can use pfodApp and pfodDesigner. The Instructable https://www.instructables.com/id/AndriodArduino-for... shows you how to make Android on/off menus for Arduino with no coding at all.

Here is a sample menu I made with pfodDesigner in about 5 mins, the generated code will switch an Arduino output on/off, just add a relay to control the clock. You could also use pfodApp to set the time as well. see www.pfod.com.au for the details.

HardDiskClockSmall.png

About This Instructable

38,023views

172favorites

License:

More by ACVoltage:Hard Disk Clock (HDD Clock with Arduino Uno)
Add instructable to: