loading
This is a funny looking clock that has that displays time on relatively large 32x16 Bi-Color LED Matrix.
It includes also a countdown counter that I find very useful in many situations.

Features:
  1. Date And time display
  2. Temperature display
  3. Countdown timer
  4. Buzzer notification
  5. Randomly changing colors of display
  6. Display intensity control (brightness)
Aside the fact it is fun to build, you might ask why do that?
Well, I have few good uses for it, one of them is ensure in meetings people are respectful of time and are not taking all the time for their own topics. Good for ship-room or SCRUM meetings.

Step 1: Parts

Following is a list of parts and for the "special" ones a link for where you can buy them. Consider searching eBay or other stores for getting best prices.
1x Arduino board (Mini/Nano or other)
1x HT1632 LED Dot Matrix display http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=6&products_id=178
1x DS1820 Temperature Sensor (The DS18B20 is good as well).
1x DS1340 Real-Time clock (RTC) module http://www.gravitech.us/i2crecl.html
3x Push Buttons http://www.gravitech.us/mopubusw12sq.html
1x Arcade push button http://www.gravitech.us/pubu33bl.html
5x 4.7K Resistor
1x 10uF Capacitor
1x 5V Buzzer http://www.gravitech.us/acbuzzer4v8v.html (I actually bought a different one in local store for much cheaper price)

You might also need some male-to-female jumper wires like these: http://www.ebay.com/itm/30pcs-1pin-Wire-Male-Female-Jumper-Cables-for-Shield-or-EQUIV-/190720063441?pt=LH_DefaultDomain_0&hash=item2c67cd37d1 to connect between the display and the Arduino. Also, depending on the exact format of the RTC module, you might need different jumper wires too. If you go with the one mentioned above, it has male header so you can use these male-to-female wires. For connecting the display you need 6 wires and for the RTC 4 wires. Depending on how and what type of buttons you choose, you will need wires and optionally a bread-board to place them on.

Notes:
a) The LED Matrix is pretty nice one and comes from Sure Electronics. Apparently there is a confusing list of variants for this type of display. The link to the Arduino store is where I got mine.
b) You can easily change the RTC to be any other, including DS1307 based which is cheaper (less than $4.00 on eBay). Minor code modifications might be required depending on which RTC module you choose.
c) I used Arduino Nano that also has the USB connection, easier to program it and all. To save on cost you can choose any variant actually that is 5V one (the matrix display is designed for 5V logic)
d) The current drawn by the LED matrix is relatively high so make sure to provide thick wires for ground and Vcc

Step 2: Operating the Clock

Basically there are three modes the clock works in:
Modes of operation
1. Standard mode, displaying time and flipping 2nd line between date and temperature
2. Setup mode, where the user can adjust time and date
3. Countdown mode: First line display current time and 2nd line showing the time remaining for countdown

In Standard Mode
Pressing "Plus" or "Minus" buttons increases and decreases the display intensity respectively.
Pressing "Setup" moves the clock to Setup mode.
Pressing "Start/Stop" moves the clock to Countdown mode

The 2nd line will display the following information, flipping from one to the other every 2 seconds.
Day-of-week + Day-in-month
Month-Name + Year (last 2 digits)
Day-in-month + Month Number + Year (4 digits)
Temperature

Also, in this mode the color used to display this information is changing every 4 seconds and is different for first and seconds line.

In Setup Mode
With each press of Setup the focus of time and date part changes and displayed in Red.
The "Plus" and "Minus" buttons changes the value
Pushing "Setup" gets you to edit Hour, Minute, Seconds, Day in month, Month and Year
After you completed setting up the time and date additional push on "Setup" will get you back to "Standard" mode.

In Countdown Mode
Once you enter to this mode, the time to countdown is displayed on the 2nd line with a Yellow down arrow. Pushing "Setup" lets you edit the time to countdown. "Plus" or "Minus" buttons will be used to set minutes and seconds.
Pushing "Start/Stop" again in this mode will start the countdown, time left will be displayed on the 2nd line with a Red down arrow. Once countdown is complete a buzz will be heard and the clock will return to start of countdown mode.
During countdown, the color of the time left changes from Green while time is more than a minute, Yellow when 59 seconds or less are remaining and eventually turn Red in the last 10 seconds (see pictures of this step).
During countdown, pressing "Start/Stop" again will stop counting down and restore countdown time to the previously set time like when you just entered the countdown mode.
The countdown period you set is preserved between operations and between power recycles (stored on Arduino EEPROM).

Step 3: Schematic and Assembly

Assembling this instructable is pretty straight forward for people who experienced building any electronics/Arduino projects. If you need any assistance in programming Arduino, please search in this site for more details on how to download the IDE and how to program an Arduino board.

Connecting the components can be done pretty easily using of the shelf connector cables like these one, or you can practice your ironing for more firm assembly.

Please take a look at the drawing here. As the drawing tool does not have in its library all the components I used here, so I draw using the closest ones available with yellow notes on setting the right connections.

The circuit for the DS1820 is shown separately. Make sure to place the sensor as far as you can from the display as the display itself does dissipate some heat that will influence the temperature reading.

I included a mechanical diagram for the case I built with a 3D printer I got lucky to get some access to thanks to a good friend who works in one of the firms that produces those incredible machines.

Connect the components according to the diagram and upload the code into your Arduino using its IDE (Arduino IDE 1.0 or 1.0.1).
Setup the time and date and you are all set.

Some notes:
I used a 10uF in parallel to the Arcade button for debouncing.  If not used, pressing this button will cause the clock to flip fast into and out of countdown mode. I did not observe and debouncing issues with the standard buttons, but if you do... adding a small capacitor in parallel to them will do the trick too. Smaller capacitors did work as good.

One of the ways which you can make the display even more appealing is by attaching a white paper (standard printer paper) to the display. This makes the display glow in a nicer way. The pictures here do not include that addition.
What about a timer that counts down to pre-scheduled events throughout the day? For example, I would love to be able to put my class schedule into a timer and have it always tell me how much time I have left until my next class.
Of course it is possible to do with some software modifications. The code is done as event driven, so it will be fairly simple to add. Having said that, the challenge will be a friendly interface for putting the events in. It seems like a PC or mobile would be best as schedule input mechanism. And if a smartphone is considered, having this type of app on smartphone itself is actually very easy considering calendar it already have. I would think an Android (or iPhone) app would be better for the use-case you mention.
<p>These are the errors which I get while compiling. I am not not interested in the temperature sensor, so deactivated those functions</p><p>undefined reference to 'TempTile::init()</p><p>undefined reference to 'TempTile::show()</p>
<p>ok, fixed it.. there were still references to temperature.init() in the displaymanager ::init which I commented out. now it compiles without any problem. But also wonder why it would not compile with no code changed (if i were to use the temperature sensor, lets say)</p>
<p>Not sure exactly. The temperature code is there and works well for me. What IDE are you using?</p>
<p>Having problem compiling the sketch. I have already downloaded the onewire.h and DallasTemperature.h files and still shows error while compiling. </p>
nice! we could use one of these in the office. what have you been using this to countdown?
<p>This is one of the display modes already implemented in Wise Clock 4:</p><p><a href="http://timewitharduino.blogspot.ca/2013/09/close-enough-wise-clock-display-mode.html" rel="nofollow">http://timewitharduino.blogspot.ca/2013/09/close-e...</a></p>
n a software development industry and used it in ship room or SCRUM meetings. Ship room is where we track release before shipping it and SCRUM is a daily standing up meeting as part of a complete development process methodology

About This Instructable

13,492views

34favorites

License:

Bio: An experienced manager in Hi-Tech that never gets bored with technology or life
More by zmashiah:Turning Stereo Amplifer On and Off automatically Colorful Countdown Clock for tight timeline management Bluetooth mobile phone accessory for Missed calls and SMS 
Add instructable to: