Adafruit 7-seg display clock

A father's day project using the Adafruit 1.2" 7-segment Backpack

 

About

I got the idea for this project when I saw a beautiful 7 segment display at Adafruit. The display uses I2C and runs off of 5V so it is very easy to interface with.

The clock face STL file can be downloaded at the following link. I made this mode in FreeCAD which was a disaster. I would not recommend using FreeCAD unless you have no other options.

clockv5.stl.zip

The clock is build off of an Anarduino Mini which is some sort of Arduino Mini knock off. This microcontroller is as cheap as dirt (~5$) and works well for small projects like these. I would like to revisit the source code to fix the rollover issue and to address the fact that the clock runs fast.

clockit2.zip

RTC Improvement

I have added a real time clock to the project to make the system more accurate. Below is a list of the final bill of materials. The FTDI programmer is only required if a bootleg Arduino with no usb connectivity.

Qty Part Cost
1 Adafruit 1.2" 4-Digit 7-Segment Display w/I2C Backpack $20
1 Anarduino or similar arduino mini clone $5
1 DS1307 RTC Clock Module $7
2 Tactile Push Button $1
2 4.2k Ohm 1/8 Watt resistor $1
1 2.1mm - 5.5mm DC Plug Jack $1
1 2.1mm - 5.5mm DC Chassis Socket Jack $1
1 FT232RL FTDI 3.3V 5.5V USB to TTL Serials Adapter $5
1 Pin Header 1x30Pin 2.54mm Pitch Straight (5PCS) $1
1 5V AC to DC converter $5


Connections

Anduino SCL (A5) to 7-segment SCL and RTC SCL
Anduino SDA (A4) to 7-segment SDA and RTC SDA
Tactile button 1 pin 1 to input 3 
Tactile button 1 pin 2 to 4.2k resistor
Tactile button 2 pin 1 to input 6
Tactile button 2 pin 2 to 4.2k resistor
Both resistors to GND
RTC module VCC to 5V 
RTC module GND to GND
7-Segment 5V to 7-Segment V_IN and 5V
7-Segment GND to GND
clockit4.zip

Operation

  • Click hour button to increment hours
  • Click minute button to increment minutes
  • Click both buttons to change the brightness

Build

  • Input 6 is pulled up to 5V via a 2.2k resistor and is the hour button
  • Input 3 is pulled up to 5V via a 2.2k resistor and is the minute button
  • 7-segment D pin to Analog-4
  • 7-segment C pin to Analog-5 or Digital 21 for the Mega
  • 7-segment + pin to  5v
  • 7-segment -  pin to  GND
  • 7-segment IO pin to 5v.
  • The Adafruit library writes to the 7-segment display
  • 5V AC to DC wall-wart provide 5V and GND