A Weird Arduino Powered Clock




About: Enjoying the projects? Support this page on Patreon: https://goo.gl/QQZX6w

Hey everyone today im going to show you how to build a very different looking clock, powered by an Arduino. The idea behind the clock is a circle with a circumfrence of 72cm (28.3465 inch's) that ticks at 1cm every ten minutes which means every 72 ticks will equal 12 hours making it a 12 hour clock. (Its pretty complecated to expain to expain so check the pictures and video for a better understanding :D)

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Parts List:

For this project you will need the following parts:

And these parts:

  • A Soldering Iron
  • A Glue Gun
  • A Box Cutter (knife)

Step 2: The Stepper Motor Libary

Disclaimer. You only need to install this library if you are using the less common ULN2003 MotorController, most other motor controllers will work with the pre-installed Arduino motor controller library if you are using these skip this step.

Everything I explain here can be found on this website: (http://goo.gl/Da5jEh)

  1. Start by downloading the .cpp and .h file I have added
  2. Create a new file called StepperMotor
  3. Drag and Drop both the .cpp and .h file into the new StepperMotor file
  4. Go to your Arduino libraries file and drop the StepperMotor file into it
  5. Open Arduino IDE and run this test code to make sure everything was installed correctly
StepperMotor motor(8,9,10,11);
void setup(){
void loop(){


6. Now verify the code in the Arduino IDE if it compiles without any issue you have installed everything correctly.

Step 3: The Wiring

First things first plug your stepper motor into your stepper motor controller and get your soldering iron ready

Connect the Motor Controller to the Arduino in the this order

  1. Connect Ground on the Arduino to Ground on the motor controller
  2. Connect 5v on the Arduino to 5v on the motor controller
  3. Connect Pin 6 on the Arduino (Blue) to int 1 on the motor controller
  4. Connect pin 7 on the Arduino (White) to int 2 on the motor controller
  5. Connect pin 8 on the Arduino (Orange) to int 3 on the motor controller
  6. Connect pin 9 on the Arduino (Purple) to int 4 on the motor controller

Check the colour coded pictures to double check your wiring.

Step 4: The Code

Copy the code below and paste it into your Arduino IDE and upload it to your Arduino


StepperMotor motor(6,7,8,9);

void setup(){ Serial.begin(9600); motor.setStepDuration(1); }

void loop(){ motor.step(-64); delay(600000); }

Step 5: The Electronics Casing

To make the casing I'm going to start by creating a box around the electronics that has a small hole allowing the motor shaft to stick out allowing it to make contact with the moving part of the clock.(To make it easier to put the clock face on we are going to make a cardboard square and glue it onto the motor shaft, see photos)

Step 6: Creating the Clock Face

To start off we need to figure out the basics of the clock face, now normal clocks have 3 hands around a 12-hour face allowing the user to see seconds, minutes and hours now with our clock we only have 1 "hand" which means we have to maximize our space. My final idea was to create the circle with a circumference of 72 cm (not too big and not too small) which means each "tick" will move the circle by 1 cm therefore meaning that 1 cm equals 10 minutes (720 minutes in 12 hours). All of this is a little confusing but the pictures do help with the understanding.

  • Start by getting a compass(drawing tool) and opening it to 11.46cm which is the radius of the circle.
  • Draw two circles and cut them out.
  • now grab a thin piece of cardboard and cut a strip measuring 72cm in length (The strip should be 5cm wide but its not very important how wide it is.)
  • Now on the strip measure and mark every cm.
  • Now draw time intervals on each mark (like this 12:00, 12.10, 12:20, 12:30, 12:40, 12:50, 01:00, 01:10.... until you get to 11:50 which would be at the end of the sheet)
  • Cut square holes in the middle of both circles
  • Glue the strip we cut out in between the two circles to make a mini cylinder

Step 7: Putting It All Together

Put the peaking out part of the motor (that turns) into the square we made in the circles and glue it together (see pictures). Once its all together we can test it out and make sure it works and ticks in time.

If you have any questions please message me or leave a comment and ill try my best to get back to you. Thank you so much for reading



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest

    20 Discussions


    Question 6 days ago on Step 7

    I know it been a long while since you posted this but I was wondering if you could offer any help with the code. Is there a way to adjust the code to make specific steps per se every minute, and possibly hour? I have tried just fooling around with the code and uploading it to my arduino but it doesnt seem to make any changes.


    11 months ago

    Hi, i have a couple of questions...

    Does the arduino have no problem powering the stepper motor with no independent power supply?

    How much torque would you say the stepper motor gives ? Could you put a fair amount of resistance on it and it still turn?


    Suraj Grewal

    3 years ago

    Nice Idea, but i was wondering, why won't a regular clock mechanism work with it

    3 replies

    A regular clock mechanism would definitely work i just wanted to do some playing about with Arduino's and stepper motors

    juan luisr1

    3 years ago

    Hi ravijag!. How did you solve the 72 ticks vs the 64 steps per rotation? Mine does not "display" the exact value! Cool clock. I will try to ad a RTC!!

    1 reply

    Hey Juan, My motor moves about 1,125cm per a tick on a 72cm circumference and so far its been accurate however if yours is giving you different values i recommend playing with the -64 value in the code until you get a perfect rotation. Good luck!:D


    3 years ago

    Oh I started otherthinking and wondered why there's no RTC module but for that you just move the paper. But still, if it looses power an rtc would be a nice feature, if only to watch it spin very quickly

    1 reply

    I completely agree i would have loved to add one but i found there wasn't much point in the event of power loss i would just rotate the clock to the current time

    Ramkumar paidi

    3 years ago

    sar I am using arduino uno does same coding works with it and sar can I use dc motor instead of stepper motor with l293d motor driver plz tell me sar

    1 reply

    3 years ago

    Cool Arduino Rotary Clock! Does it change every 10 minutes?

    1 reply

    it does, however you can change it to tick every minute if you made a circle with a bigger sercumfrence


    3 years ago

    nice project !