Animated Word Clock

7,193

93

40

Introduction: Animated Word Clock

About: Crazy about technology and the possibilities it can bring. I love the challenge of building unique things. My goal is to make technology fun, relevant to everyday life and help people succeed in building coo...

Build your own Word Clock with an animated display. This is a simple project uses an Arduino Nano, Color LEDs and includes a stylish 3D Printed Case.

The Word Clock has three animated patterns
- Matrix style

- Typewriter Style

- Rainbow Color

The three buttons on the back enable animation style, color and time to be set.

A great addition to your home office or work space and a great gift for others. The Display provides an opportunity to experiment with various display options so there is potential to add your own custom animations.

- I hope you enjoy!!

Step 1: Gather the Materials

  1. Arduino Nano
  2. WS2812B RGB LED Module x 110
  3. DS2321 RTC module
  4. Light Dependent Resistor (Approx 8k-20k range)
  5. Resistor 10K ohm
  6. Push Button Switch x 3
  7. Vero Board 15 x 34 holes
  8. Access to 3D Printer with a build volume of 200mm x 200 mm x 70mm (Ender 3)
  9. White PL filament
  10. Mini-B USB cable - 2m length
  11. Multi-core hookup wire
  12. Bell Telephone Single-Core wire 3m
  13. Soldering Iron
  14. Silver or Black Spray paint for coating inside of Baffles

Step 2: Print the Case

The 3D design of the case has been through three iterations in the field and now I've settled on this design to give maximum transfer of light in the clock without compromising on aesthetics or build quality.

There are four components to print

  1. LED Mount - Contains the 110 x WS2812 LEDs
  2. Front Case
  3. Baffles
  4. Rear Panel

Download the STL files from Thingiverse link here and load into your slicer in preparation for printing on your 3D Printer.

I used PLA filament and printed at 210 Degrees with a print speed of 40mm/sec, no supports are required.

I printed on a glass bed heated to 60 Degrees to get the clean finish on the face.

Note: When you print the baffles there are some parts of the letters that have no attachment. For instance the centre of the letter "O". Dont worry about these because you can use a marker pen to color these in on the back of the front case if there is too much diffusion. See the final photo above.

Step 3: Build and Test the LED Array

The LED Array

The unit uses an 11x10 LED MAtrix using 110 Ws2812 LEDs which are connected in series as bus as per the Circuit Diagram.

Take the LEDs and carefully orient them in the LED Mount so that the LEDs follow the pattern and numbering provided above.

Solder the +ve and -ve connections using single core Bell Wire that has been stripped into one long chain see photo. Then carefully run one wire down the Data line and solder in place. I then snipped out the Data connection on each LED individually to make it easier to connect up.

I used hookup wire to connect each column of LEDs as per the photograph.

Testing the LEDs

Using breadboard and an Arduino Nano it is easy to test the LEDs at this stage. Connect the Arduino Nano Vin and GND pins temporarily to the LED Array then connect D11 to the Data pin.

Connect the Arduino Nano to the LED Array Data pin and connect to a Desktop device USB.

Load the Arduino IDE and then upload the code provided. The clock LEDs should run the startup Tests without any connections and therefore is a good way of testing your Array. If there are any LEDs not lighting during startup check connections and orientation of LEDs to resolve.

Step 4: Assemble the Circuit and Test

Assemble the Circuit

Now that you have tested the LED array you can assemble the circuit,

I have provided photos of the Vero Board layout so you can copy the holes and wiring layout provided. Drill out the mounting holes and check the alignment with the 3D printed read lid.

Solder in the Nano, Switches and LED first then connect up wiring as per the circuit diagram.

The DS3232 RTC clock module was installed last of all and connected with Bell Wire to the Nano as per the photo provided.

Load the Arduino IDE Libraries

These need to be added to the Arduino IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.

TimeLib.h

Wire.h

DS1307RTC.h

FastLED.h

Follow the Arduino IDE update library procedure to do this before the next step.

Set the Time

Use the "TIme Set" Sketch provided in this step, upload to the Nano and ensure that RTC is functioning correctly by setting the current. Then load the code provided and test the LED operation.

Step 5: Putting It All Together

Final Assembly

Finally, attach the USB cable through the rear case lid and fasten in the chord grip provided.

Screw in the mounting for the PCB. Place a sheet of plastic between the back of the Baffle and PCB to avoid any short circuits.

Screw in the back lid and you should be ready to use your Matrix Word Clock

Operation

The Word Clock has four animated patterns

  1. Rainbow Color
  2. Matrix style
  3. Typewriter Style
  4. Standard Static Display
  5. Downward Fill Style


Adjust Animation

The default animation is the Rainbow colour style. You can increment your way through the animations by holding down the left buttonfor a few seconds until white and red square fills the display. Release the button and then the animation will appear on the clock.

Adjust Colour
The default colour for the clock is Green. You can increment your way through the colours by holding down the right button for a few seconds until white and blue square fills the display. Release the button and then the animation will appear on the clock.

Auto Dimmer
The LDR provides enough sensitivity to detect dark and light environments through the white PLA casing. I have tuned this in the code to turn on the LEDs to brightest intensity when in daylight. You may have to adjust this depending on LDR values. You can do this by printing analogRead(7) and then exposing the clock to both dark and light environments then display the readings in the IDE monitor. Make appropriate adjustments in the code.

Note: If you dont want to bother with a dimmer you can forego the LDR and change the code. The variable "dimmer" has a numerical value between 20 and 100 sets the brightness. If you set this to a predetermined value by inserting this in row 176 of the code

Dimmer = 50; // Manually set brightness with Dimmer variable

Manual Time Adjustment

I recommend you use the Set Time Sketch provided to set the time accurately. Using an external USB port to power the clock gives you the convenience of doing this. The RTC will have a rechargeable battery that should retain the time for approx 24 months so there should be no real reason for manual changes.

If you have to you can increment or decrement the minute setting of the clock by doing the following.

Decrement Time

You can decrement the time by one minute by holding down the right and middle button for a few seconds until a white and purple square fills the display. Release the button and then change will be made. Remember the clock only displays five-minute variations of time so this means you will need to repeat until you see a change.

Increment Time
You can increment the time by one minute by holding down the right and middle button for a few seconds until a white and purple square fills the display. Release the button and then change will be made. Remember the clock only displays five-minute variations of time so this means you will need to repeat until you see a change.

The Display provides an opportunity to experiment with five various display options and I have only included 5.

There is potential to add your own custom animations. - I hope you enjoy!!

Arduino Contest 2019

Participated in the
Arduino Contest 2019

Be the First to Share

    Recommendations

    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    40 Discussions

    0
    CrescioK
    CrescioK

    Question 1 year ago

    Hi, i have 2 questions.
    1. How to set the brightness of led at maximum at startup? or simply to change the brightness.I tried with the var dimmer but it doesn't change anything..
    2. How to add at matrix animation the "it is" leds.

    0
    TechKiwiGadgets
    TechKiwiGadgets

    Answer 1 year ago

    Hi

    1. The variable "dimmer" has a numerical value between 20 and 100 sets the brightness. If you set this to a predetermined value by inserting this in row 176 of the code

    Dimmer = 50; // Manually set brightness with Dimmer variable

    2. Try adding the code to line 877

    itis(); // Display It Is

    Let me know how you get on

    0
    CrescioK
    CrescioK

    Reply 1 year ago

    Hi, the first solution is working but the matrix effect is still not showing it is even if i add itis() at top of Matrixeffect()

    0
    TechKiwiGadgets
    TechKiwiGadgets

    Reply 1 year ago

    Hi, the complication I have is I have given the unit to my parents as a gift :)
    So I cant test your request to change the code. However I will make another suggestion once I have worked through the code again. It may take a few days

    0
    leeroyjam
    leeroyjam

    Question 1 year ago

    It seems that the led mount is larger than the baffle and in fact it does not fit in the case. Is it possible that an earlier version of the led mount was uploaded.

    IMG_3075.JPGIMG_3074.JPG
    0
    TechKiwiGadgets
    TechKiwiGadgets

    Answer 1 year ago

    Ahh yes I remember now, my apologies. After adding some reinforcing to the STL I had to snip some of the plastic I included in the latest version. Have a closer look at this picture below and see the manual modifications to the print. I intended on modifying the design to accommodate this however didn't complete. I will mention in the text above an updated print for this soon. I suggest you trim the corners off with a pair of snippers and around the supports manually.

    FLAEEKHJW4U0M8H.LARGE.jpg
    0
    TechKiwiGadgets
    TechKiwiGadgets

    Reply 1 year ago

    Revised LED Mount STL file now up on Thingiverse!!

    0
    leeroyjam
    leeroyjam

    Reply 1 year ago

    Thanks very much I will give it a go. Will post when I do a reprint.

    0
    leeroyjam
    leeroyjam

    Reply 1 year ago

    Reprinted and now it is like a glove... Thanks.

    IMG_3077.JPG
    0
    TechKiwiGadgets
    TechKiwiGadgets

    Answer 1 year ago

    That's weird let me double check tonight and come back to you

    0
    CrescioK
    CrescioK

    Question 1 year ago

    Hi, in my led test i see only 60 leds working. not more. do you now why? i'm using arduino nano i think is a current problem, i followed your schematics

    0
    TechKiwiGadgets
    TechKiwiGadgets

    Answer 1 year ago

    Hi, the most common problem in this case is a bad connection in the LED array. This happened to me. Check the connections at led 61 in particular the led orientation

    0
    careyway
    careyway

    Question 1 year ago on Step 4

    Hi, Nice project so far! Compile fails with errors around DS1307 library. Where do I download this library?

    0
    FrankR135
    FrankR135

    Question 1 year ago

    is there anyone who can give me some tips how i can make this work with a esp8266?
    Thanks

    0
    TechKiwiGadgets
    TechKiwiGadgets

    Answer 1 year ago

    The LED control would be straight forward I haven't tried the RTC with esp boards yet

    0
    TechKiwiGadgets
    TechKiwiGadgets

    Reply 1 year ago

    Actually you could pull the time from the internet from an ESP so wouldn't need a RTC

    0
    FrankR135
    FrankR135

    Reply 1 year ago

    Unfortunately i don't have the time to build it now. But will do in the near future.
    I will try to use the esp with the time from the internet.
    1
    FrankR135
    FrankR135

    Tip 1 year ago

    My first print of the Case_Final failed, because my magnetic mat wasn't the best for this print. The sides warped and even the magnetic mat came lose. So i printed it on back of the glas of the ender 3. I heated the bed to 50 degrees and it came out super smooth.
    I got this tip from Ivan Miranda.
    It took me about 19 hours to print.

    Surface.jpgInside.jpg
    0
    TechKiwiGadgets
    TechKiwiGadgets

    Reply 1 year ago

    Nice work, has a great finish!! I used a Glass bed and Gluestick however you got a better finish

    0
    FrankR135
    FrankR135

    Reply 1 year ago

    Thanks for your great design. Still have to put it together, but the days are getting warmer now so i dont want to sit inside my house soldering.