Chiming, Scrolling LED Matrix Clock

Matrix clock with scrolling time, date, day of week, temp, humidity and event notifications.

Oct 18, 2019

•

27660 views

•

15 respects

Components and supplies

1

Speaker: 0.25W, 8 ohms

1

Humidity and Temperature Sensor

1

Adafruit RC D3231

4

Pushbutton Switch, Momentary

1

Adafruit FX 2mb Soundboard with built in amplifier

1

Red Acrylic face plate

1

Resistor 10k ohm

1

Arduino Mega 2560

2

LED Matrix 7219 four module display

1

Wooden Box for enclosure

1

Photo resistor

Project description

Code

LED Matrix clock

arduino

Arduino code for clock

LED Matrix clock

arduino

Arduino code for clock

Updated code for clock

arduino

Added some more events

Downloadable files

Updated code for automatic DST begin and end

I mistakenly thought that the DS3231 RTC module 'knew' about DST transitions. Doesn't. So I've added code to make that transition to/from DST automatic

Updated code for automatic DST begin and end

Clock sounds

The ten sounds used to make up the startup sound, Westminster Chimes, bells and Game of Thrones music

Clock sounds

Matrix Clock Connections

Schematic substitute

Matrix Clock Connections

Matrix Clock Connections

Schematic substitute

Matrix Clock Connections

Updated code for automatic DST begin and end

I mistakenly thought that the DS3231 RTC module 'knew' about DST transitions. Doesn't. So I've added code to make that transition to/from DST automatic

Updated code for automatic DST begin and end

Clock sounds

The ten sounds used to make up the startup sound, Westminster Chimes, bells and Game of Thrones music

Clock sounds

Comments

Only logged in users can leave comments

tbbucsfan1976

2 years ago

I made this clock for my shop, I live in south Texas and temperatures get above 100' or more, how do I add a third digit (Ex. 109.5 ' F) to the temperature display on the Matrix display ? Thanks, tbbucsfan1976

Anonymous user

2 years ago

What a great project. Mine is working fine thank you :-) I have managed to change the temperature display to Celcius. Can anyone tell me how to reverse the order of the month and date to show dd/mm/yyyy? Thanks for your help Steve

spudnut1

2 years ago

It actually should be pretty easy. I haven't tested it but you should be able to just change const int DMptr = 0; const int DDptr = 3; to be const int DMptr = 3; const int DDptr = 0;

spudnut1

2 years ago

You should be able to use the mini (I didn't know they existed). You could either just do westminster or just bell or lose the startup and demo/showoff mode sounds. Then you can rejigger the file names and pin hookups to match

novax1

2 years ago

Hello it did not make the automatic time change of time. This can be configured to work, with the Spanish time Thank you

novax1

2 years ago

Hello. I want to apologize because I did not understand in the See-Through Matrix Clock Connections that all pins 0,1,2,3,4,5,6,7, of fx sound had to be connected to the Arduino mega. in my case 30,31,32,33,34,35,36,37. now everything works perfectly. thank you and excuse me. great job

novax1

2 years ago

Thank you for your quick response and sorry for the inconvenience. this already exceeds me. Thank you

spudnut1

2 years ago

Great news!  I’m so glad to hear!  Enjoy! Irwin Goverman Mobile: (206)930-2108 Irwin.goverman@gmail.com Sent via iPad

spudnut1

2 years ago

Might be easier to just order the full size sound board!

spudnut1

2 years ago

I have newer versions of the code that I can post soon. Did it fix when you unplugged it and started it again?  Irwin L. Goverman (206)930-2108 mobile Sent from my iPhone

Anonymous user

2 years ago

Anyone try this project using a ESP32 instead? I was thinking of the ESP32 for the WIFI abilities to connect to the NTP servers and maybe a weather feeder.

spudnut1

2 years ago

Yes... the only issue is whether you have enough GPIO pins. I just built a similar NEOPIXEL clock that uses an ESP8266 and scrolling clocks that use the ESP8266 as a co-processor for internet access to news, weather, time etc.

Anonymous user

2 years ago

Can we run this project on Proteus And can u send me Wiring diagram with all pin configuration And much more And also can I do this project with now 4 8*8 Dot matrix Max7219

novax1

2 years ago

Can anyone tell me how to reverse the order of the month and date to show dd/mm/yyyy? thank

spudnut1

2 years ago

It actually should be pretty easy. I haven't tested it but you should be able to just change const int DMptr = 0; const int DDptr = 3; to be const int DMptr = 3; const int DDptr = 0;

novax1

2 years ago

Thank you very much it works before it looks like this 2/5/2021, now shown 05/2/2021

novax1

2 years ago

Hello, I really like your work. There is an option to show the temperature in degrees.

spudnut1

2 years ago

I am not sure if there’s a question in your comment…. The clock does show temperature in degrees.   I am about to post a new version that also does internet time, news and weather…

spudnut1

2 years ago

What kind of problems are you having with the sounds? Are you using the FX Soundboard with speaker outputs? (There's another version that does not have the amplifier. Each sound is a number Tnn.OGG file -- they are triggered by a corresponding "low" on the associated sound pin

spudnut1

2 years ago

Next debugging step would be to check the sound board connections and use a simple jumper to test that each sound plays correctly when 'asked to'. It sounds like they may not be right. Playing one less per hour might mean the last 'trailing' (its longer) sound may be missing somehow

spudnut1

2 years ago

Have you checked the chime/bell/silent switch?  It’s a SPDT toggle.  The center goes to ground a d the two outer connections switch between Westminster and simple bell.  Irwin Goverman Mobile: (206)930-2108 Irwin.goverman@gmail.com Sent via iPad

novax1

2 years ago

e tested the sound module individually and they reproduce all sounds. but when I connect the sound module, so that it works with your code, hours go by and it doesn't play anything.

novax1

2 years ago

because when it's 5 o'clock you hear 4 simple bells that happens at all times, always one less. The SPDT is connected as you indicate but it only works in a simple bell position, when changing position the switch the Westminster does not activate. Thank you

novax1

2 years ago

Sorry but I'm a clumsy do not connect the SPDT. Now it works. just Chime the hour. these nothing, Chime the quarter hour Chime the half hour Chime the 3/4 hour sorry for the inconvenience

spudnut1

2 years ago

No problem -- its a complex clock and if that is the biggest (or only) mistake you made (especially since I'm too dumb to figure out Fritzing!) you did great! I have a newer version of the same clock that uses multiple displays, reaches out to the internet for news, weather and the time setting. I will post it soon.

novax1

2 years ago

I have the fx mini module it only has 0 to 7, act. then you show in the instructions connect Pins 0-9 connected to Pins 30-39 on Arduino Mega. I have 0 connected to pin 30 and 7 to pin 39 ?? I choose like that. because I can't get one less tone every hour. I would like to please be able to correct this thanks. I like your great work. regards

novax1

2 years ago

Thanks for answering and for your help. the audio card is an Adafruit FX Soundboard mini with a separate amplifier. I'll check what you tell me.

novax1

2 years ago

eproved and they all sound but with the clock it continues giving a tone less

spudnut1

2 years ago

So, still not what you want, right? You want 5/02/2021, I think. If still not right, let me know and I will fix it for you.

spudnut1

2 years ago

Oh, sorry I read your reply wrong..... I think it IS right. But let me know

spudnut1

2 years ago

More thoughts -- have you tried to play the individual OGG files on your computer just to see if they came across correctly (and that I uploaded them right!). I'm happy to email them otherwise.

novax1

2 years ago

Greetings. I'm trying to reproduce the sounds as programmed but I can't. I am using Adafruit Soundboard with amplifier. can you help me thanks

novax1

2 years ago

this is the one that shows before the correction 2/5/2021 ... 2 is the month 5 the day Should I show this I think it's possible? 05/02/2021 I still don't understand why I have to translate from English to Spanish. Excuse me. thanks

Anonymous user

2 years ago

HERE I NEED YOUR HELP IN SPDT SWITCH CONNECTION WHICH U HAVE WROTE CENTER TO GND AND OTHER TERMINALS TO MEGA 5 AND 6 THIS CONNECTION WILL SHORT VCC AND GND SHOW JUSTIFY ANSWER

spudnut1

2 years ago

No it does not short it. Pins 5 and 6 are not VCC.... They are Pullup connections to digital pins. All the switches (pushbutton and 'toggle') connect a digital pin to ground (not VCC to ground) and that's how they work. Pulled up to 'HIGH' and 'LOW' indicates that switch or pushbutton is 'on'. Does that help?

Anonymous user

2 years ago

NEED YOUR HELP BUDDIE GOT SOME ISSUE HERE [invalid conversion from 'const char*' to 'char*' [-fpermissive] ] AND ALSO UPLOAD THE WHOLE CKT WIRING DIAGRAM PIC AND CAN WE MAKE THIS WHOLE CKT USING ARDUINO NANO WAITING FOR YOUR RESPONSE REPLY AS FAST AS U CAN

Anonymous user

2 years ago

Looking forward for your updates

spudnut1

2 years ago

I have had the same problem. I think redoing the logic around the date event strings would fix it.

Anonymous user

2 years ago

Hi, Very nice project! I have something similar and I have a request if you know... How can I do it in that way on void loop, after clock scroll, the next scroll will be the same clock software, but that for another time (UTC to say); and next scroll back on the first ?!

spudnut1

2 years ago

You can figure out an offset, load a 2nd set of date/time array members and just insert the second scroll into the Case statement

Anonymous user

2 years ago

I've checked and re-check my wiring and code but the output on the display is in a vertical orientation instead of horizontal. Has anybody else had this and is there a cure for it?

spudnut1

4 years ago

You should be able to use the mini (I didn't know they existed). You could either just do westminster or just bell or lose the startup and demo/showoff mode sounds. Then you can rejigger the file names and pin hookups to match

spudnut1

2 years ago

I have newer versions of the code that I can post soon. Did it fix when you unplugged it and started it again?  Irwin L. Goverman (206)930-2108 mobile Sent from my iPhone

spudnut1

2 years ago

Might be easier to just order the full size sound board!

spudnut1

2 years ago

Great news!  I’m so glad to hear!  Enjoy! Irwin Goverman Mobile: (206)930-2108 Irwin.goverman@gmail.com Sent via iPad

novax1

2 years ago

Hello it did not make the automatic time change of time. This can be configured to work, with the Spanish time Thank you

novax1

2 years ago

Hello. I want to apologize because I did not understand in the See-Through Matrix Clock Connections that all pins 0,1,2,3,4,5,6,7, of fx sound had to be connected to the Arduino mega. in my case 30,31,32,33,34,35,36,37. now everything works perfectly. thank you and excuse me. great job

novax1

2 years ago

Thank you for your quick response and sorry for the inconvenience. this already exceeds me. Thank you

spudnut1

4 years ago

No problem -- its a complex clock and if that is the biggest (or only) mistake you made (especially since I'm too dumb to figure out Fritzing!) you did great! I have a newer version of the same clock that uses multiple displays, reaches out to the internet for news, weather and the time setting. I will post it soon.

novax1

2 years ago

I have the fx mini module it only has 0 to 7, act. then you show in the instructions connect Pins 0-9 connected to Pins 30-39 on Arduino Mega. I have 0 connected to pin 30 and 7 to pin 39 ?? I choose like that. because I can't get one less tone every hour. I would like to please be able to correct this thanks. I like your great work. regards

novax1

2 years ago

eproved and they all sound but with the clock it continues giving a tone less

novax1

2 years ago

Thanks for answering and for your help. the audio card is an Adafruit FX Soundboard mini with a separate amplifier. I'll check what you tell me.

spudnut1

4 years ago

What kind of problems are you having with the sounds? Are you using the FX Soundboard with speaker outputs? (There's another version that does not have the amplifier. Each sound is a number Tnn.OGG file -- they are triggered by a corresponding "low" on the associated sound pin

novax1

2 years ago

because when it's 5 o'clock you hear 4 simple bells that happens at all times, always one less. The SPDT is connected as you indicate but it only works in a simple bell position, when changing position the switch the Westminster does not activate. Thank you

novax1

2 years ago

Sorry but I'm a clumsy do not connect the SPDT. Now it works. just Chime the hour. these nothing, Chime the quarter hour Chime the half hour Chime the 3/4 hour sorry for the inconvenience

novax1

2 years ago

e tested the sound module individually and they reproduce all sounds. but when I connect the sound module, so that it works with your code, hours go by and it doesn't play anything.

spudnut1

2 years ago

Next debugging step would be to check the sound board connections and use a simple jumper to test that each sound plays correctly when 'asked to'. It sounds like they may not be right. Playing one less per hour might mean the last 'trailing' (its longer) sound may be missing somehow

spudnut1

2 years ago

Have you checked the chime/bell/silent switch?  It’s a SPDT toggle.  The center goes to ground a d the two outer connections switch between Westminster and simple bell.  Irwin Goverman Mobile: (206)930-2108 Irwin.goverman@gmail.com Sent via iPad

spudnut1

4 years ago

Oh, sorry I read your reply wrong..... I think it IS right. But let me know

novax1

2 years ago

this is the one that shows before the correction 2/5/2021 ... 2 is the month 5 the day Should I show this I think it's possible? 05/02/2021 I still don't understand why I have to translate from English to Spanish. Excuse me. thanks

novax1

2 years ago

Greetings. I'm trying to reproduce the sounds as programmed but I can't. I am using Adafruit Soundboard with amplifier. can you help me thanks

spudnut1

2 years ago

More thoughts -- have you tried to play the individual OGG files on your computer just to see if they came across correctly (and that I uploaded them right!). I'm happy to email them otherwise.

spudnut1

4 years ago

So, still not what you want, right? You want 5/02/2021, I think. If still not right, let me know and I will fix it for you.

novax1

4 years ago

Can anyone tell me how to reverse the order of the month and date to show dd/mm/yyyy? thank

novax1

2 years ago

Thank you very much it works before it looks like this 2/5/2021, now shown 05/2/2021

spudnut1

2 years ago

It actually should be pretty easy. I haven't tested it but you should be able to just change const int DMptr = 0; const int DDptr = 3; to be const int DMptr = 3; const int DDptr = 0;

novax1

4 years ago

Hello, I really like your work. There is an option to show the temperature in degrees.

spudnut1

2 years ago

I am not sure if there’s a question in your comment…. The clock does show temperature in degrees.   I am about to post a new version that also does internet time, news and weather…

Anonymous user

4 years ago

NEED YOUR HELP BUDDIE GOT SOME ISSUE HERE [invalid conversion from 'const char*' to 'char*' [-fpermissive] ] AND ALSO UPLOAD THE WHOLE CKT WIRING DIAGRAM PIC AND CAN WE MAKE THIS WHOLE CKT USING ARDUINO NANO WAITING FOR YOUR RESPONSE REPLY AS FAST AS U CAN

spudnut1

2 years ago

I have had the same problem. I think redoing the logic around the date event strings would fix it.

Anonymous user

2 years ago

Looking forward for your updates

Anonymous user

4 years ago

Anyone try this project using a ESP32 instead? I was thinking of the ESP32 for the WIFI abilities to connect to the NTP servers and maybe a weather feeder.

spudnut1

2 years ago

Yes... the only issue is whether you have enough GPIO pins. I just built a similar NEOPIXEL clock that uses an ESP8266 and scrolling clocks that use the ESP8266 as a co-processor for internet access to news, weather, time etc.

Anonymous user

5 years ago

HERE I NEED YOUR HELP IN SPDT SWITCH CONNECTION WHICH U HAVE WROTE CENTER TO GND AND OTHER TERMINALS TO MEGA 5 AND 6 THIS CONNECTION WILL SHORT VCC AND GND SHOW JUSTIFY ANSWER

spudnut1

2 years ago

No it does not short it. Pins 5 and 6 are not VCC.... They are Pullup connections to digital pins. All the switches (pushbutton and 'toggle') connect a digital pin to ground (not VCC to ground) and that's how they work. Pulled up to 'HIGH' and 'LOW' indicates that switch or pushbutton is 'on'. Does that help?

Anonymous user

5 years ago

Can we run this project on Proteus And can u send me Wiring diagram with all pin configuration And much more And also can I do this project with now 4 8*8 Dot matrix Max7219

Anonymous user

5 years ago

What a great project. Mine is working fine thank you :-) I have managed to change the temperature display to Celcius. Can anyone tell me how to reverse the order of the month and date to show dd/mm/yyyy? Thanks for your help Steve

spudnut1

2 years ago

It actually should be pretty easy. I haven't tested it but you should be able to just change const int DMptr = 0; const int DDptr = 3; to be const int DMptr = 3; const int DDptr = 0;

Anonymous user

5 years ago

How can I change the temperature to Celsius?

Anonymous user

2 years ago

Hi You just need to remove the 'true' between the brackets as shown in the code below // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); Cheers Steve

dbjurstr_3

5 years ago

I've checked and re-check my wiring and code but the output on the display is in a vertical orientation instead of horizontal. Has anybody else had this and is there a cure for it?

Anonymous user

5 years ago

Hi, Very nice project! I have something similar and I have a request if you know... How can I do it in that way on void loop, after clock scroll, the next scroll will be the same clock software, but that for another time (UTC to say); and next scroll back on the first ?!

spudnut1

2 years ago

You can figure out an offset, load a 2nd set of date/time array members and just insert the second scroll into the Case statement