Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812BMAKER:parallyze/Translated by: Fun Endless

The LED clock project has always been a favorite among makers, with new projects emerging every year. This issue introduces a multifunctional 7-segment clock made with LED strips and Arduino.

The clock uses a single LED strip, consisting of 252 LEDs in total. Inside the frame, there is only one LED strip that is 4.2 meters long. Each segment has 8 LED blocks, with each block containing 56 LEDs.

Creating a Digital Clock with Arduino and WS2812B

Clock details:

Width: 40.7 cm; Height: 14.8 cm; Depth: 3.8 cm. A total of 252 LEDs are needed, with 1 continuous LED strip (WS2812B, 60 leds/m, 4.2m). If it is a 6-digit version (6.47m), 388 LEDs are required.

Creating a Digital Clock with Arduino and WS2812B

Watch the video:

Previous exciting LED projects:

Creating a colorful clock with 128 ping pong ballsUsing Raspberry Pi or Arduino to create LED matrix lights with a schedule clock using Google Calendar on Raspberry Pi

Material List

WS2812B LED × 252 (60 pcs/m) Arduino Nano/Pro Mini/atmega328 × 1 DS3231 RTC module × 1 16x6mm button × 2 26AWG wire × several USB wires × 1 USB charger × 1 M3 screws × 12

Project Description

When all white LEDs are lit and driven at the maximum rated current (60mA), the power consumption is about 75.6W. If you plan to illuminate at high brightness, ensure to use appropriate heat dissipation materials. Because when running the clock at high brightness and setting a power limit of 7.5A, the components will noticeably heat up within the first ten minutes of testing.

The source code is based on the S7ripClock project, which can be viewed here: https://www.instructables.com/id/S7ripClock-Basic-Edition/

During installation, you can add a wall hook, allowing the clock to be placed on top of the electronic device’s casing.

Electronic Components

Upload the source code using Arduino IDE. The FastLED library is used here. For RTC communication, JChristensen’s DS3232 library is utilized.

The internal power and current limit of the project is 750mA. You can adjust according to actual conditions and handle wiring or power accordingly.

3D Printed Parts

Creating a Digital Clock with Arduino and WS2812B

The digital 3D printed parts are recommended to be printed with black material. L7One_Frame_A.STL×1 L7One_Frame_B.STL×1 L7One_Frame_C.STL×1 L7One_Cover_A.STL×1 L7One_Cover_B.STL×1 L7One_Cover_C.STL×1 L7One_Front_AC.STL×4 L7One_Front_B.STL×1 L7One_Elec_Case.STL×1 L7One_Cable_Cover_A.STL×1 L7One_Feet.STL×1

The diffuser (diffusion layer) part is recommended to be printed with transparent material. L7One_Diffuser_AC_Type_1 or 2 (empty) ×28 L7One_Diffuser_B_Type_1 or 2 (empty) ×2 The collection of types 1 and 2 of the diffuser is included in a single STL (30 pieces).

The maximum component size for printing (x/y) is 187.3mm x 147.6mm.

Printing Settings:Thickness: 0.5mm; Layer height: 0.25mm; No support required; Maximum overhang: 45°.

STL files can be downloaded from the project file library: https://make.quwj.com/project/236

Installing the LED Frame and Strip

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Install as shown.

Testing the LEDs

Creating a Digital Clock with Arduino and WS2812B

The test environment current is limited to 500mA, you can safely run it by powering the Arduino via USB, connecting the LEDs to +5V/GND and the data input to pin 6.

In the video, all 252 LEDs are tested. Each LED will be lit, so do not pay too much attention to the light leaked from unused LEDs between the numbers and points.

In the video, each position will demonstrate displaying 0-9 and counting from 0-99 starting from the left or right.

If you plan to use HH:MM display in the project, you just need to do some tests including segment and number definitions, etc.

Test files can be downloaded from the project file library: https://make.quwj.com/project/236

Front Diffuser

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

According to your needs, place the diffuser inside the front, and connect it to the numbers or dots. Pay attention to the direction of the numbers, with two (MM) located below the wall and aligning with the notches of the sawtooth, and two (HH) positioned above the wall. The front components are symmetrical and can be rotated 180°.

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

It is relatively difficult to achieve the best real effect of the LEDs in one go. I tried adding Type A and Type B and comparing them. When moving, the Type B head produces a spotlight effect, but beyond 4m, the difference between Type A and Type B is minimal.

Assembly

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

In addition to the three wires in the test, you also need to add a power line to the other end of the LED strip. The selection of the power line depends on actual conditions, threading the wire through the hole in the frame A cover.

Creating a Digital Clock with Arduino and WS2812B

Cover all the lids on the LED frame.

Creating a Digital Clock with Arduino and WS2812B

As shown in the picture, place the electronic device’s casing on the back and secure it in place. Connect the casing to the connector of the central module.

Electronic Parts

Creating a Digital Clock with Arduino and WS2812B

The box for installing hardware is suitable for various combinations of Arduino Pro/Nano and RTC (suitable for Raspberry Pi DS3231, DS1307, and DS3231). You can choose other microcontrollers according to your needs.

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

For the connection method of the electronic parts, please click to view: https://www.instructables.com/id/S7ripClock-Basic-Edition/

You can also adjust according to the brightness and power you need, and you may need to add capacitors next to the LED strip and Arduino.

Arduino Clock Source Code

This software is the fifth version.

The basic settings are: Button A: Select brightness. Button A (long press): Switch color mode (per digit/per LED). Button B: Select palette. Button B (long press): Switch 12h/24h mode. Button A + B: Enter settings. In the settings process: Button B -> Increase +1, Button A -> Accept/Next step. Note: This design does not yet support six-digit numbers.

Once everything is normal, it can work. If there are any issues, please set the serial console to 57600 baud and check its status. If the clock immediately enters settings and displays nothing, it may be due to button shortening or connection errors.

You can also refer to my other projects: https://www.thingiverse.com/parallyze/designs

Code files can be downloaded from the project file library: https://make.quwj.com/project/236

Six-Digit (Optional)

Creating a Digital Clock with Arduino and WS2812B

If you need to add two extra digits and a central module to display HH:MM:SS, please follow these steps.

Creating a Digital Clock with Arduino and WS2812B

This version requires redesigning the code framework, as the number of LEDs will exceed 255, which will increase many variables. Memory usage needs to be optimized.

When using six digits, it is recommended to run at least 1.5A, otherwise, even at the lowest brightness setting, the center point lighting 24 LEDs will cause all digits to dim.

The STL for six digits are: L7One_Frame_D.STL×1 L7One_Cover_D.STL×1 L7One_Diffs_D.STL×1 (only provides one Type 1, fourteen AC, and two One) L7One_Connector.STL×1

The STL in the original file section are: L7One_Frame_B.STL×1 L7One_Front_B.STL×1 L7One_Cover_B.STL×1 L7One_Front_AC.STL×2

Others: WS2812B LED×136 M3 screws×8

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

The installation method of the LED strip is as shown in the picture. After completing the preparations, everything can be connected.

STL files can be downloaded from the project file library: https://make.quwj.com/project/236

Assembly of Six Digits (Optional)

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Creating a Digital Clock with Arduino and WS2812B

Install as shown, removing all items from the clock until you can safely remove the outer cover from the RTC on the right-side module and central module.

Note: Remove the button battery from the RTC during operation!

Now, the entire project is complete!

Project file library address:

http://maker.quwj.com/project/236

via instructables.com/id/Lazy-7-One/

Links in the text can be clicked to read the original text at the end

Creating a Digital Clock with Arduino and WS2812B

More exciting content

Baby monitor based on Raspberry Pi CribSense

I look like a handle, but I’m actually an adjustable power supply

A cloud that forecasts the weather, based on Raspberry Pi + 3D printing

Barrier: PC and Raspberry Pi keyboard and mouse sharing solution

Building remote temperature monitoring with Raspberry Pi and MCC 134

Cool modification: electric skateboard with a speed of 40km and a range of 18km

8GB memory version of Raspberry Pi 4 released, official price $75

Samytronix Pi: Desktop computer DIY with Raspberry Pi

Creating a Digital Clock with Arduino and WS2812B

Leave a Comment

×