Arduino Driven RGB LED Scrolling Clock





Introduction: Arduino Driven RGB LED Scrolling Clock

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.



    • Science of Cooking

      Science of Cooking
    • Pocket-Sized Contest

      Pocket-Sized Contest
    • Microcontroller Contest

      Microcontroller Contest

    We have a be nice policy.
    Please be positive and constructive.




    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.

    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.

    That is indeed what I am doing :) Glad you like it.

    where is the instructable ?? :think:

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

    Got an estimate release date for the LIB ?