Digital wall clock, or a bed-side clock, or whatever type of clock you like, equipped with a rotary encoder knob, a photo resistor able to aid in adjusting brightness as it changes throughout the day. The clock can be equipped with an optional strip of neo pixels – for some extra color. Works with Arduino Uno, Nano, Mini Pro, as well as Teensy.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
enclosure
images
.cproject
.gitignore
.project
App.cpp
App.h
AppInstance.h
GaugedValue.h
LICENSE
NeoPixelEffects.cpp
NeoPixelEffects.h
NeoPixelManager.cpp
NeoPixelManager.h
README.md
RGBColor.h
RGBController.h
RGBPatternManager.h
SetTimeHelper.cpp
SetTimeHelper.h
SetTimeMenu.cpp
SetTimeMenu.h
State.h
Wallock.h
Wallock.ino

README.md

Auto-Dimming Clock with Seven-Segment Digital Display

This is a repo for a series of related clocks I made for myself and friends. They range from mid-sized bed clocks to wall clocks, some have RGB lights, some do not, etc.

Typically clocks are controlled with a rotary encoder knob (the type that also has a button).

This clock has been build with Teensy, Arduino Nano and Pro Micro.

Overview

The clock is equipped with:

  • light sensor (beneath the rotary knob) which automatically adjust brightness by up to 50% in either direction, depending on the light around (it is attached to a 10K resistor).
  • rotary knob with a built-in button functionality
  • 3 "neo pixel" RGB LEDs (optional)
  • Adafruit 7-segment I2C display for the time display

Additional features include:

  • WiFi card
  • Humidity/Temperature sensor
  • Potentiometer for adjusting the range of affect of the photo-sensor.

The enclosure you see on the picture is made from 1/8" acrylic using matte black color, and semi-transparent black for the front panel.

Clock Front View

Functionality

When the switch turns on, the clock is on. The time is stored on Teensy backed by a 3.3V battery, and uses a crystal soldered on the bottom of Teensy.

When the clock is running, you can:

  • Press single click rotary knob turns on/off neo pixel strip
  • Press double click rotary knob turns off/on 7-segment display
  • moving rotary knob in this mode changes the brightness. There are 16 total values for brightness, from 0 to 15.
  • press and hold enters the menu to set the time
    • Once in the menu setup, rotating the knob changes the current hour. When done, click the knob once.
      • If during either hour or minutes setup you rather cancel this process, double click the button.
    • Now change the minutes, and when ready click the knob once.
    • Now the time will be set and saved, and configuration mode is finished.

Libraries

Supplied with Teensy:

  • Wire
  • DS1307RTC
  • Adafruit_GFX
  • Time

Additional dependencies:

Clock Top View

Hardware

If there is interest, I can describe in more detail how the hardware is put together, so please create an issue on github to register your interest.

For the time being, here is a high zoom shot into the land of wires and neatly arranged pieces :)

Clock Inside View

Author

(c) 2015 Konstantin Gredeskoul, https://github.com/kigster

Distributed under MIT license, see LICENSE.