Project tutorial
A Weird Arduino Powered Clock

A Weird Arduino Powered Clock © Apache-2.0

I needed a weird clock to go along with the rest of the weird projects in my workshop.

  • 38 respects

Components and supplies

Ph a000053 iso (1) pnkpri8a6q
Arduino Micro
Any microcontroller will do.
Stepper Motor 28BYJ-48
Any stepper motor will do.
ULN2003 Driver Board
Any stepper motor controller will do.

Necessary tools and machines

09507 01
Soldering iron (generic)
Hy gluegun
Hot glue gun (generic)

About this project

Hey, everyone. Today I'm 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 circumference of 72 cm (28.3465 inches) that ticks at 1 cm every ten minutes which means every 72 ticks will equal 12 hours making it a 12 hour clock. (It's pretty complicated to explain so check the pictures and video for a better understanding.)

Step 1: Parts List

For this project you will need the following parts:

  • A Microcontroller (I'm using an Arduino Micro but any will do)
  • Cardboard (thick and thin)

And these parts:

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

Step 2: The Stepper Motor Library

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: (

  • Start by downloading the .cpp and .h file I have added
  • Create a new file called StepperMotor
  • Drag and drop both the .cpp and .h file into the new StepperMotor file
  • Go to your Arduino libraries file and drop the StepperMotor file into it
  • Open Arduino IDE and run this test code to make sure everything was installed correctly:
#include   StepperMotor motor(8,9,10,11);
void setup(){ 
void loop(){ 
  • Now verify the code in the Arduino IDE. If it compiles without any issues, 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:

  • Connect Ground on the Arduino to Ground on the motor controller
  • Connect 5v on the Arduino to 5v on the motor controller
  • Connect Pin 6 on the Arduino (Blue) to int 1 on the motor controller
  • Connect pin 7 on the Arduino (White) to int 2 on the motor controller
  • Connect pin 8 on the Arduino (Orange) to int 3 on the motor controller
  • 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, paste it into your Arduino IDE and upload it to your Arduino.

#includeStepperMotor motor(6,7,8,9);void setup(){
}void loop(){

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. 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.46 cm, 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 72 cm in length. The strip should be 5 cm wide but its not very important how wide it is.
  • On the strip, measure and mark every cm.
  • 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 it's 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 I'll try my best to get back to you. Thank you so much for reading.


Code snippet #1Plain text
#includeStepperMotor motor(6,7,8,9);void setup(){
}void loop(){


Arduino / Motor Controller
Fhw7ayriq2o4wp9 large xze4zfrzqr
F89zec4iq2o4wsa large q5yduk4353


Similar projects you might like

Simple wall clock using Adafruit 1/4 60 Ring Neopixel

Project tutorial by antiElectron

  • 57 respects

Clock Set Date Time

Project tutorial by Tittiamo

  • 119 respects

Arduino Clock with Neopixel Ring Animation

Project tutorial by Alexander

  • 102 respects

How to Make Analog Clock & Digital clock with Led Strip

Project tutorial by DKARDU

  • 10 respects

ThermoClock: An OpenSource Arduino UNO OLED Clock

Project tutorial by Konstantin Dimitrov

  • 51 respects

Cheap NeoPixel Strip Clock

Project in progress by JaeKar99

  • 17 respects
Add projectSign up / Login