created by sargantana 2017
licensed under GPL v2
A WordClock is a device displaying the time in 5 minutes increments on a matrix of words spelling the time. This project deals with a DIY approach as an alternative for the 1.250€ priced original product.
Time is displayed in 12h format, chnging color from green to blue depending if its AM or PM. Pins.h is used to define the I/O of the used board. Use WordMatrix.h to define the layout of your word matrix. The sketch is written to tell time in english language, but as I am german I changed a few things in my specific setup. Feel free to improve and enhance the sketch for other languages or setups. In the Sketch itself are some parameters you may want to alter as you can change the increment you want to increase/decrease the time while setting it (recommended are 5 minutes for obvious reasons) or activate EdgePixels to light up and show minute accurate time by using four surplus pixels placed in the edge of the clock to light up for minutes 1&6, 2&7, 3&8 and 4&9. Future improvements are possible, if you have any ideas feel free to hit me up!
This code uses the Adafruit_Neopixel and Time libary. They are absolutly neccessary for this to work.
Get NeoPixel Libary here: https://github.com/adafruit/Adafruit_NeoPixel
Get Time Libary here: https://github.com/PaulStoffregen/Time
- (25x) WS2812b-based adressable LEDs (i.e. NeoPixel) // Number of Pixels used depends on you
- 2x Momentary push buttons
- Arduino based Board
- 5V PSU capable of powering all Pixels at once + Arduino + overhead // you can calculate an average of ~65mA per Pixel
- PCB
- Frame (i. e. IKEA Ribba picture frame)
- Faceplate // I lasercut this out of the IKEA Ribba backplate but you could also 3d print it
Change pins in Pins.h according to your setup
#define MINUS 4 // Declare pin for + Button
#define PLUS 5 // Declare pin for - Button
#define PIN 3 // Declare pin for NeoPixel DATA IN
#define NUMPIXELS 25 // Declare amount of NeoPixels used
Change the Layout/Sequence of your word matrix in WordMatrix.h according to your setup
I used an older version of the WordClockFacePlate by microcontroller.net
A Newer version (in german) can be found here: https://www.mikrocontroller.net/articles/WordClock_mit_WS2812
There is a 3d printable .stl of this used faceplate ![here](github.com/sargantana/blob/branch/wordclock/CAD files/faceplate.stl)
If desired you can change the color pattern for the lighting depending if it is PM or AM
You can find these in the ![arduino sketch](/Arduino sketch/wordclock_sketch.ino)
Example for AM color settings (pure blue)
// RGB values for AM
int AMr=0;
int AMg=0;
int AMb=255;
After double checking everything upload to arduino. Turn on the wordclock and set the time with the buttons.