I decided to use some 8 x 32 LED modules below is an outline of the development work undertaken and “proof of concept” so far.
This project uses a UNO R3 Pro mini / Nano to drive an 8 x 32 LED Matrix.
The MAX72XX library I used was from GitHub, there are a couple of setting that must be adjusted after loading the library and this video details how to do what is required.
There are six push buttons connected to the Arduino Pins for controlling:
- increasing the displayed time – Pin 3
- decreasing the displayed time – Pin 4
- resetting the clock to defaults – Pin 5
- setting the brightness of the display – Pin6
- setting the fats clock rate – Pin 7
- start/pause the clock – Pin 8
There are five wires connected from the display to the Arduino:
- CS_PIN or SS – Pin 10
- DATA_PIN or MOSI – Pin 11
- CLK_PIN or SCK – Pin 13
The push buttons utilise “Debounce” methodology an example can be found in the provided in the IDE.
Push button function explanation
The clock upon power up will display “Pause” and the default start time of 06:00 and fast clock “Rate” will be set to 4:1 with a low brightness intensity. After changing the Time, Brightness or Rate press this button to commence operation or pause operation after commencement.
Pressing this button will either increase the “Start Time” or “Run Time”. If the clock has been “running” for two minutes then adjustments are made to the “Run Time” otherwise it will be to the “Start Time”. The adjustments are in 15 minutes per button press. Each button press will be registered when “Pause” is displayed which will happened after ¾ of a second after each press.
Pressing this button will either decrease the “Start Time” or “Run Time”. If the clock has been “running” for two minutes then adjustments are made to the “Run Time” otherwise it will be to the “Start Time”. The adjustments are in 15 minutes per button press. Each button press will be registered when “Pause” is displayed which will happened after ¾ of a second after each press.
Pressing this button will cycle through the 16 brightness levels available. The brightness will stay at the last level selected until the clock is powered down.
Pressing this button will allow the fast clock rate to be set at 2, 4, 6, 12 or 30 times normal time.
Generally, a rate of up to 6 will be used for Op sessions and the 12 & 30 used for testing minute/hour/day roll over operation of the clock which will run for about 5 days before the dreaded “stack overflow” – this should not be a problem in practice!
Pressing this button will reset the clock to the default settings.
Bill of Materials:
(1) 1 x Arduino (UNO R3, Nano or Pro mini).
(2) 1 x 8 x 32 LED Matrix ( this link ).
(3) 6 x push button normally open switches.
(4) 6 x 10kΩ ¼W resistors.
(5) 1 x 5V 250VA Power supply
The Arduino sketch code can be found here.
Below is a link to a short video that covers what has been done.
I also tried sharing the control data over multiple screens and it seems to work OK. I think if this was implemented then the control cables would need to be screened cables to avoid interference from other adjacent cables.
The proof of concept appears to provide a workable outcome.