Arduino Driven RGB LED Scrolling Clock

About: Hi, my name is Mike and I am from London, England. I really like to make things and in particular like to do creative things with Arduinos and electronics. Other hobbies include astrophotography and sailing....

This is an 8x8 RGB LED module, being driven by 4 x 74HC595N Shift Registers controlled by a Boarduino (Arduino clone that can be used on a breadboard). The time data is from a DS1307 Real Time Clock IC.

The display is outputting the time and then the date and cycling through 7 different colours. This took me about 5 hours in total to put together and code.

I have introduced the concept of a 'Colour Overlay' which means the colour data is held in a separate data array to the LED ON/OFF data. The way it works is you imagine the matrix is made up of two layers, the bottom layer is an array of 8x8 lights that can either be on or off 9The Greyscale Layer). The top layer (The Overlay Layer) contains a digital piece of coloured cellulose that the lights shine through. Depending on what colour each section of the matrix has been set to, whatever is displayed underneath on the Greyscale Layer shines through the coloured Overlay Layer, giving you the colours that you see.

In this demonstration two functions are used, the 'colourFill' and the 'rainbowFull' functions. The colourFill function simply fills the Overlay array with a solid colour. The rainbowFill function fills the Overlay array with a preset pattern of colours. As you can see, the colours remain static whilst the text appears to slide underneath.
An ambitious coder could use this function to also animate the Overlay to give animated colours that move separately to the animation underneath in the Greyscale Layer.



    • Faux-Real Contest

      Faux-Real Contest
    • Safe and Secure Challenge

      Safe and Secure Challenge
    • Cardboard Challenge

      Cardboard Challenge

    6 Discussions


    Very nice. Would love to see an instructable for this. I'm new to shift registers and totally don't get how to use the 74HC595N's with a LED matrix.


    9 years ago on Introduction

    So, technically, you are manipulating your three-dimensional RGB array separately from a two-dimensional array of boolean values and logically ANDing the arrays on each refresh? That's a pretty cool idea.

    1 reply

    It's on the backburner whilst I sort out some stuff for my store. Will be revisiting it soon though.