Project tutorial
Arduino Brake Rotor Clock

Arduino Brake Rotor Clock © GPL3+

A project using a car brake rotor as a clock.

  • 499 views
  • 0 comments
  • 1 respect

Components and supplies

Necessary tools and machines

Hy gluegun
Hot glue gun (generic)

Apps and online services

About this project

This project is one of which I have been waiting to do for a very long time. This project can also be used as just a simple clock without the rotor. The clock is housed in a simple metal dish that I never used. The wires are fed through a hole to the rear, in which has the Arduino and the RTC securely mounted.

The base is a 1/2 thick piece of wood (make sure it can support the weight of your rotor) That is then wrapped with a carbon fiber vinyl tucked around the edges. We then have 2 1x1-inch wood legs are then cut to an angle of 50 or 45 degrees, then glued to the rear as support (see last picture). Your metal plate/dish is then firmly screwed in place with very durable screws (any type except machine ones). This point is where it gets tricky, as you must now wire up the clock to the front with your wires going through the back to the arduino that is mounted with the aid of double stick tape. Once you have finished the wiring you will want to clean up all glue strings and other debris from the face and back. Now mark your holes to mount the actual rotor screws, then drill them through your metal plate ensuring that you do not drill through the wood below. If you decide to buy the exact same rotor as I did there are 2 pre-tapped screw holes ready for our bolts to go through, and penetrate the earlier drilled metal plate mounting holes. Tighten the screws in so you have your screws going through your holes in the rotor then through the ones in the plate.

Code

CodeArduino
You must download the RTClib.h library from this link
: https://github.com/adafruit/RTClib
#include <Wire.h>
#include <RTClib.h>

//DP G F E D C B A
const byte segmentMap[10] = {
  B00111111, //0
  B00000110, //1
  B01011011, //2
  B01001111, //3
  B01100110, //4
  B01101101, //5
  B01111101, //6
  B00000111, //7
  B01111111, //8
  B01100111  //9 
};

RTC_DS3231 rtc;

const int segmentPins[8] = {2,3,4,5,6,7,8,9}; // A B C D E F G DP
const int digitPins[4] = {10,11,12,13};       //DIG1 DIG2 DIG3 DIG4

void setup() {

  // Set the segment pins as outputs
  for (int i=0; i<8; i++) {
    pinMode(segmentPins[i], OUTPUT);
    digitalWrite(segmentPins[i], LOW);
  }
  
  // Set the digit pins as outputs
  for (int i=0; i<4; i++) {
    pinMode(digitPins[i], OUTPUT);
    digitalWrite(digitPins[i], HIGH);
  }
  
  if (! rtc.begin()) {
    while (1);
  }

  if (rtc.lostPower()) {
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
  
}

void loop() {

    int digits[4];
    int hour;
    int minute;
    
    DateTime now = rtc.now();

    // Convert 24 -> 12 hour 
    if (now.hour() > 12) {
      hour = now.hour() - 12;
    } else {
      hour = now.hour();
    }
    minute = now.minute();

    // Figure out individual digits
    digits[0] = hour / 10;
    digits[1] = hour % 10;
    digits[2] = minute / 10;
    digits[3] = minute % 10;

    for (int i=0; i<=3; i++) {
      displayNumber(digits[i], i, 5);
    }
 
}

void displayNumber(int number, int digit, int duration) {

  if ((number >=0 && number <=9) && (digit >= 0 && digit <=3)) {
    // Turn on appropriate digit
    digitalWrite(digitPins[digit], LOW);    
    // Turn on appropriate segments
    for (int seg=0; seg<8; seg++) {
      digitalWrite(segmentPins[seg], bitRead(segmentMap[number], seg));
    }
    delay(duration);    
    // Turn off digit
    digitalWrite(digitPins[digit], HIGH);    
  }
  
}

Schematics

the schematic
Clock rotor bb hpwmvvf70v

Comments

Similar projects you might like

Arduino Clock with Neopixel Ring Animation

Project tutorial by Alexander

  • 46,920 views
  • 42 comments
  • 72 respects

MultiFunctional Clock

Project in progress by 3 developers

  • 16,571 views
  • 2 comments
  • 28 respects

Simplest UNO Digital Clock Ever

Project tutorial by plouc68000

  • 11,305 views
  • 16 comments
  • 42 respects

Arduino OLED Temperature Display with Real Time Clock

Project tutorial by Keval Doshi

  • 10,844 views
  • 7 comments
  • 35 respects

Clock without using RTC in Arduino with Temperature and humi

Project tutorial by ahmadordi

  • 10,945 views
  • 13 comments
  • 36 respects

A Very Compact Alarm with Card Reader and Real-Time Clock

Project tutorial by Simone Adobs

  • 7,369 views
  • 3 comments
  • 32 respects
Add projectSign up / Login