Digital Clock With Automatic Rotation of LED Display

by lagsilva in Circuits > Clocks

1597 Views, 4 Favorites, 0 Comments

Digital Clock With Automatic Rotation of LED Display

IMG_0835.JPG
IMG_0834.JPG
Digital Clock with Automatic Rotation Display

This project is about a digital clock with automatic rotation of 7-Seg LED display.

This clock can be rotated in any position keeping the digits readable even upside down or in a mirror image!!

It is controlled by an Arduino and driven by accelerometers to find out the correct position in 3D coordinates.

Additionaly there is a feature to show the indoor ambient temperature in Celsius or in Fahrenheit degrees.

The assemble is very simple and I hope you have fun using it !!

Cheers,

LAGSILVA

Material List

Arduino Uno R3.JPG
IMG_20171015_153202744.jpg
MPU-6050 - Acelerometro e Giroscopio 3 Eixox.jpg
Female Jumpers.jpg
  1. Arduino Uno R3
  2. MPU-6050 breakout
  3. Multi Funtion Shield for Arduino
  4. Female jumper wires


- MPU-6050 breakout:

The MPU-6050 breakout consists in a triple axis accelerometer and gyroscope plus a temperature sensor with following specifications:

  • Chip: MPU-6050
  • Input Voltage: 3-5V
  • ADC: 16 bits
  • I/O: standard I2C
  • Gyroscope full-scale range: ±250, 500, 1000, 2000°/s
  • Accelerometer full-scale range: ±2, ±4, ±8, ±16g
  • Temperature sensor range: -40 to +85 ºC


- Multi Function Shield (MFD):

The MFD can simplify and speed up the prototype development.

Main features:

  • 4 digit 7-segment LED display module driven by two serial 74HC595's
  • 4 x surface mount LED's in a parallel configuration
  • 10K adjustable precision potentiometer
  • 3 x independent push buttons
  • Piezo buzzer
  • DS18B20 temperature sensor interface
  • LM35 temperature sensor interface
  • Infrared receiver interface
  • Serial interface header for convenient connection to serial modules such as Bluetooth, wireless interface, voice module, a voice recognition module, etc.

Assembly

IMG_20171015_153409998.jpg
IMG_20171015_153348390.jpg
IMG_20171015_153428978.jpg
IMG_20171015_153238483.jpg

The assembly is very simple and does not need any schematics:

  1. Insert the Multi Shield into the Arduino.
  2. Fasten the MPU-6050 breakout on the Arduino board using a tiny screw.

There only 04 jumper wires to be connected:

  • Red wire: Vcc (+5V)
  • Black wire: Gnd
  • Green wire: SCL of MPU-6050 breakout to port #6 in the Multi Shield.
  • Yellow wire: SDA of MPU-6050 breakout to port #5 in the Multi Shield.

Setup

Multi Shield by Hackatronics.JPG

There are 3 buttons to setup the clock:

  1. Left button: Press to adjust the hours. Quickly press to set up step by step. Continuous press to advance the hours quickly.
  2. Center button: Set the minutes. Continuous press to advance the hours quickly.
  3. Right button: a quick press to move for temperature mode.

Note: In Temperature Mode is possible to change the status to Fahrenheit or Celsius pressing the Left button.

Code

P24 - Arduino Code.PNG
Front Mirror.PNG
Front Upside Down.PNG
Upside Down Mirror.PNG

The main functions of the code are:

  • Reading of accelerometers inclination angles.
  • Calculation of the transfer function for the 7-seg LED display (see pictures).

With the angles is possible to detect the spacial position of the clock and decide what routine will be released:

  1. Front View - Clock Stand Up
  2. Front View - Clock Upside Down
  3. Mirror View - Clock Stand Up
  4. Mirror View - Clock Upside Down