Arduino Forum

Community => Exhibition / Gallery => Topic started by: Riva on Aug 13, 2012, 12:02 pm

Title: Arduino WordClock
Post by: Riva on Aug 13, 2012, 12:02 pm
I'm not really much of an exhibitionist but here are some pics of my second arduino project. The first project was an almost identical clock that I built as a prototype to learn about the arduino. This second clock was built because the stripboard I had to buy was big enough to build a second more refined model. The first clock has been going strong for several months now and this second one has been finished and working well for about 2 months.
Title: Re: Arduino WordClock
Post by: Riva on Aug 13, 2012, 12:03 pm
More pics

The large PCB was tending to warp so used a piece of acrylic as a backing frame.
I was also hoping there would not be to much bleed between LEDs but had to put some baffles in. Ended up using black plastic straws for this.
Title: Re: Arduino WordClock
Post by: Riva on Aug 13, 2012, 12:04 pm
and yet more...

After thinking about how to do the letter mask for several days I hit upon the idea of just inverse & backward laser printing them on a piece of white paper and sandwiching this between a piece of 3mm thick dark tinted acrylic and a 2mm thick clear acrylic. The dark tint works well to hide any detail when viewed from the front of the clock so you don't see the letters. The 2mm clear backing sits directly on the LED's as I had calculated the LED spread so it lit the entire letter and not just the middle of it.
Title: Re: Arduino WordClock
Post by: Riva on Aug 13, 2012, 12:05 pm
and more...
Title: Re: Arduino WordClock
Post by: Riva on Aug 13, 2012, 12:07 pm
and finally...

http://www.youtube.com/watch?v=wAZMbW-Vpqw (http://www.youtube.com/watch?v=wAZMbW-Vpqw)
Title: Re: Arduino WordClock
Post by: Pauly on Oct 21, 2012, 12:46 am
Very nice job, I want one.
Title: Re: Arduino WordClock
Post by: saturno on Oct 26, 2012, 04:01 pm
Hi Everyone, Riva Specially.

Congratulations for your nice job; well done!
It looks really, really nice indeed.

If you don't mind, I would like to ask you two things:
- The list of materials;
- the real size of the display itself (letter to letter, diagonal)

I will definitly build at least one for myself.

Thanks
Title: Re: Arduino WordClock
Post by: Riva on Oct 26, 2012, 05:00 pm

If you don't mind, I would like to ask you two things:
- The list of materials;
- the real size of the display itself (letter to letter, diagonal)

I have not done a bill of materials. Some parts I already had laying around. Give me a few days to compile a list.
The overall size of the clock frame (in millimetres) is 232 high x 232 wide x 42 deep.
The acrylic clock face is 200 x 200.
The active text area where the LED's sit is approx 114 wide x 107 high.
Each LED is spaced 7.62mm apart horizontally (16 LED's) x 15.24mm vertically (8 LED's) that works out about 17 diagonally letter to letter. 
Title: Re: Arduino WordClock
Post by: saturno on Oct 27, 2012, 01:33 pm
Riva,

Thank you for the details.
As for the bill of materials, I was only referring the electronic components.
Would it be too much work to get it? It is not a hurry; when your time and will permits ....
Thank you for sharing.

Title: Re: Arduino WordClock
Post by: Riva on Oct 28, 2012, 09:03 am
Attached is a list of components/materials used to build this clock. Unfortunately I will probably have missed a couple of sundry items as it took me months to find/build all the bits I needed.
I have also attached the InkScape http://inkscape.org/ (http://inkscape.org/) clock face should people need to change the wording. When you have it right you need to convert to paths and vertical mirror it ready for printing on laser printer.
Title: Re: Arduino WordClock
Post by: saturno on Oct 29, 2012, 12:17 am
Hello Riva,

Sorry if I took you time from your rest in the weekend...
Thank you very much for all your valuable information

The clock face is also very appreciated as I would like to translate it to Portuguese, though I know that will not be easy, mainly because the Portuguese translation will increase the size of the words. I'll see what I can get.

Thank you very much.

Luís
Title: Re: Arduino WordClock
Post by: Riva on Oct 29, 2012, 08:19 am

The clock face is also very appreciated as I would like to translate it to Portuguese, though I know that will not be easy, mainly because the Portuguese translation will increase the size of the words. I'll see what I can get.

There are few spare characters and some even double up sharing last character of one word as first character of next so it may be tight. Good luck
Title: Re: Arduino WordClock
Post by: DillyDog on Dec 10, 2012, 04:07 pm
Hi Riva

Would you consider releasing the source code for your clock?
Title: Re: Arduino WordClock
Post by: Riva on Dec 10, 2012, 04:16 pm

Would you consider releasing the source code for your clock?

The source code is attached to post #4
Title: Re: Arduino WordClock
Post by: liuzengqiang on Dec 12, 2012, 05:41 pm
I didn't catch this until today. Awesome! Definitely a huge step up from the original word clock, especially with the scrolling text thing!
Title: Re: Arduino WordClock
Post by: Riva on Dec 12, 2012, 05:53 pm

I didn't catch this until today. Awesome! Definitely a huge step up from the original word clock, especially with the scrolling text thing!

The first version without scrolling was programmed into a ATmega8 and had about 68 bytes of flash free so I un-soldered the chip and replaced with a 328 to give the extra space to do scrolling. Apart from scrolling the date on request and temperature every x minutes (x because I have altered the code since posting) it also has programmed dates you can scroll custom messages for. I have family birthdays, anniversary's, Christmas day & new years day that scroll every 15 minutes on the programmed day.
Title: Re: Arduino WordClock
Post by: liuzengqiang on Dec 12, 2012, 05:58 pm
This is a very neat piece of electronics. You should think about selling kits. Besides regular schedules, you can program in random jokes or "Arduino rocks" or else to go off.
Title: Re: Arduino WordClock
Post by: DillyDog on Dec 12, 2012, 10:19 pm
Thank you Riva, didn't notice! I'm working on a small desk clock, only 150mm square, and I think your code is the best I've seen!
Title: Re: Arduino WordClock
Post by: Riva on Dec 13, 2012, 09:51 am

Thank you Riva, didn't notice! I'm working on a small desk clock, only 150mm square, and I think your code is the best I've seen!

Thanks, it was the first arduino project so coding may be a bit poor to seasoned C++ programmers but it works. Have fun building it, I did.
The overall size apart from the frame is 200mm square but I do have a large(ish) border around the LED's so the design would probably fit in 150mm square. Because I built the electronics on proto board that limits the size options as your limited to the 2.54mm hole grid. A custom PCB would be nice as you can size as needed. I am also considering using 4x led matrix blocks to build another one but it's hard to find a cheap 8x8 led matrix that uses white LED's, most all are red or green.
Title: Re: Arduino WordClock
Post by: DillyDog on Dec 13, 2012, 09:59 am
Let me know if you find white ones. I've been using  smd ones but it's very time consuming and fiddly soldering them by hand.
Title: Re: Arduino WordClock
Post by: rmadhuram on Dec 15, 2012, 10:48 pm
Very nice!

Regards,
Raj
Title: Re: Arduino WordClock
Post by: Stijn on Dec 24, 2012, 02:38 pm
Hey

Great work! I was more or less inspired by this post and by seeing one for real and started doing it myself as well. All is ready now but I'm facing serieus issues with the light: when using a sticker with a transparante background (so the letters are transparent) than the light is to strong and to much in one bundle (not enough spread) so you can't see the letters any more. Using a sticker with a white background makes it not transparent enough and my leds are almost not getting through... you only see it lighting up a bit... any hints how you handles this part?

Thanks!
Title: Re: Arduino WordClock
Post by: Riva on Dec 24, 2012, 03:07 pm

All is ready now but I'm facing serieus issues with the light: when using a sticker with a transparante background (so the letters are transparent) than the light is to strong and to much in one bundle (not enough spread) so you can't see the letters any more. Using a sticker with a white background makes it not transparent enough and my leds are almost not getting through... you only see it lighting up a bit... any hints how you handles this part?


Hi Stijn,
Glad I could inspire someone  :D
After thinking of lots of possible ways to create the letter mask ranging from etching a copper clad PCB, printing on acetate, cutting letters out of sticky back plastic  and getting them laser cut out of card/plastic sheet I settled on a simple and cheap option of using a laser printer to print a reversed negative image on ordinary white printer paper. This piece of paper is cut to size then sandwiched between 2 bits of perspex. One is 3mm thick tinted that you lay the unprinted side of the paper on. Then you lay a 2mm thick clear sheet on top and tape/glue around the edges to keep it all together. I used a 2mm clear sheet because I had roughly calculated the light cone of the LED's would be the right size to illuminate the size of character printed on the paper when it's 2mm away without to much bleed into adjoining characters. This sort of worked when the display was dim but when it was bright I still got some bleed and had to resort to gluing black plastic straws between LED's. By luck more than judgement the printed paper worked very well and I did not have to bother messing around with different weight paper to get the desired effect.
You could try putting a ordinary bit of printer paper behind your transparency and see if it helps.
Title: Re: Arduino WordClock
Post by: Stijn on Dec 24, 2012, 04:27 pm
Hey thanks for the fast response!

I started off with ordering venyl stickers which is rather expensive to 'test' so I feel stuck after ordering a few of them... the next one should be the right one. I'm working on a 50x50cm.

Here you can see the results so far:

Using a transparent sticker:
(http://www.yasti.be/2012-12-24T13-42-41_0.jpg)

And a non transparent one:
(http://www.yasti.be/2012-12-24T13-45-20_0.jpg)

I tried black 'light' paper between it, I tried white paper, I tried normal white paper, I tried so many things :) nothing works so far...
Title: Re: Arduino WordClock
Post by: Riva on Dec 24, 2012, 05:10 pm
I must have been very lucky the first (and only) thing I tried worked for me.
Are you using MAX7219 chips or multiplexing with shift registers and are the LED's 5mm? I used 5mm high brightness white LED's and a couple of MAX7219 chips to keep the brightness up as multiplexing tends to dim the LED's.
Title: Re: Arduino WordClock
Post by: Stijn on Dec 24, 2012, 05:43 pm
I'm using 2 MAX7221 chips, they work great. Apart from that also 5mm high brightness leds, but just using 2 MAX7221s, they don't dim that much... just have to figure out a better solution...
Title: Re: Arduino WordClock
Post by: Beta1977 on Feb 07, 2013, 11:08 pm
Hiya

where did you get the big stripboard plates ?
Title: Re: Arduino WordClock
Post by: Riva on Feb 08, 2013, 09:33 am

where did you get the big stripboard plates ?

It was hard to find a suitable large stripboard but I got it from here http://uk.farnell.com/vero/01-0042/veroboard-179-07x454-66mm/dp/1536942?Ntt=stripboard (http://uk.farnell.com/vero/01-0042/veroboard-179-07x454-66mm/dp/1536942?Ntt=stripboard) enough to make 2x clock (that I did)
Title: Re: Arduino WordClock
Post by: liuzengqiang on Feb 08, 2013, 07:14 pm
The led looks a bit focused. Did you get the diffuse LEDs or not? Diffuse leds can be viewed from a large range of angles. Their plastic housings look rougher than a smooth plastic surface.
Title: Re: Arduino WordClock
Post by: Riva on Feb 08, 2013, 07:30 pm

The led looks a bit focused. Did you get the diffuse LEDs or not? Diffuse leds can be viewed from a large range of angles. Their plastic housings look rougher than a smooth plastic surface.

If this question is directed at me then no I did not use diffused LED's. I used these http://uk.mouser.com/ProductDetail/Cree-Inc/C535A-WJN-CS0V0151/?qs=%2fha2pyFadugYYN%2fkEaGd5KoOjGvMC7QxGs05ryBegjRuYV232%2fuYlWKl%252b6XNvG2l (http://uk.mouser.com/ProductDetail/Cree-Inc/C535A-WJN-CS0V0151/?qs=%2fha2pyFadugYYN%2fkEaGd5KoOjGvMC7QxGs05ryBegjRuYV232%2fuYlWKl%252b6XNvG2l) to get the desired light cone diameter 1.6mm-2mm above the lens.
Title: Re: Arduino WordClock
Post by: liuzengqiang on Feb 08, 2013, 08:18 pm
Sorry, it was for Stijn. I can see small light spots in the middle of each text so a diffuse LED may help illuminate larger portion of the text stencil and make reading it easier.
Title: Re: Arduino WordClock
Post by: Riva on Jun 06, 2013, 09:16 am
Quote
Hello again Riva,

I'm having a little trouble understanding some parts of the schematic, I added some notes for the questions that I have.  http://cncorpmisc.weebly.com/  It's probably obvious and I don't realize it. the one caption is supposed to read "how does this connect"
Klawd


Attached is an image that should make the connections clear.

Title: Re: Arduino WordClock
Post by: boguz on Jun 30, 2013, 08:59 pm
Great project with really nice outcome!  Congrats!!
=)
Title: Re: Arduino WordClock
Post by: saturno on Aug 10, 2013, 01:56 am
Hello Riva and everyone,

After almost a year, I finally got some "extra" time to start to build my word clock.
I was revieweing the code to fit my purposes and when I started to search for the MAX 7219 library that is included in your sketch <MAX7219.h>, I found that there are more than one libraries to work with this IC.
There are libraries that support cascading when others don't...
There are libraries with names like LedControl that are also supposed to work with this IC

Can you (or anyone that knows) please give me the link to the MAX7219 library that I should use in this project?

Thank you for any help.
Title: Re: Arduino WordClock
Post by: Riva on Aug 10, 2013, 08:48 am

Can you (or anyone that knows) please give me the link to the MAX7219 library that I should use in this project?

The libraries I used for this project are in a file called 'WordClock Libraries.zip' attached to post #4 (http://forum.arduino.cc/index.php?topic=118338.msg890787#msg890787)
Good luck with the build, both my clocks are still working nicely. The one with the DS3231 is a lot more accurate than the DS1307 version but with code tweaking I have managed to get it within 2 minutes per year time drift.
Title: Re: Arduino WordClock
Post by: saturno on Aug 10, 2013, 02:58 pm
Hi Riva!

I did missed that link. Thanks for pointing me out.
Actually, the RTC I have available right now for this project is the DS1307 which from your experience is not the best one for this kind of project. I'll change it...

Another thing that I will have to work is the Font. I need to add some "special" characters like ç, é, í, etc...
From my understanding, I need to add their "design" to the Fonts you already included, in the first place. After this, is there anything else that I need to change to be able to use them in a scrolling message?

Still regarding the Fonts, can you explain to me what's the meaning of the last digit/couple of digits defined after each character?
e.g.:
Code: [Select]

    B11001100, B00000000, //"
    B11001100, B00000000,
    B11001100, B00000000,
    B00000000, B00000000,
    B00000000, B00000000,
    B00000000, B00000000,
    B00000000, B00000000,
    8,

    B00110011, B00000000, //#
    B00110011, B00000000,
    B11111111, B11000000,
    B00110011, B00000000,
    B11111111, B11000000,
    B00110011, B00000000,
    B00110011, B00000000,
    12,


I am referring, in this example to the 8 and 12 in the last line of each character. Other characters have different codes.

Once more, thank you for all your help.
When I get something that worth to show, I'll post some pictures.
Title: Re: Arduino WordClock
Post by: Riva on Aug 10, 2013, 05:12 pm

Actually, the RTC I have available right now for this project is the DS1307 which from your experience is not the best one for this kind of project. I'll change it...
You can get reasonably accurate with a DS1307 given a little time. For me the DS1307 was loosing about 8.5 seconds per day (It take several days to get a good average) so I just put in a bit of code to add 8.5 seconds at midnight each day.

Another thing that I will have to work is the Font. I need to add some "special" characters like ç, é, í, etc...
From my understanding, I need to add their "design" to the Fonts you already included, in the first place. After this, is there anything else that I need to change to be able to use them in a scrolling message?
If you want to add the characters into the correct position to match the extended ASCII (http://www.ascii-code.com/) table then you will need to define all the characters prior to the last one you need or at least put spaces in the chars you don't define else the loadBufferLong code won't work properly (It will also need altering to accept a larger font tabe as it's current upper limit is 0x7F). You could also define the extra characters to replace un-used characters in the current font (things like {}[]|<>).

Still regarding the Fonts, can you explain to me what's the meaning of the last digit/couple of digits defined after each character?
The last number is used for kerning the font character. It is normally the bit number of the right most bit  (start counting from the left of the two bytes) + 2 and defines how wide the character is. I have highlighted the right most bits in both examples and you will see the number is the bit position of the widest point (starting with left byte/bit) plus 2 bits.
e.g.:
Quote

    B11001100, B00000000,   //" Bit position 6 (counting from left) highlighted in red
    B11001100, B00000000,
    B11001100, B00000000,
    B00000000, B00000000,
    B00000000, B00000000,
    B00000000, B00000000,
    B00000000, B00000000,
    8,     // 6+2

    B00110011, B00000000,   //#
    B00110011, B00000000,
    B11111111, B11000000,   // Bit position 10 (counting from left) highlighted in red
    B00110011, B00000000,
    B11111111, B11000000,
    B00110011, B00000000,
    B00110011, B00000000,
    12,    // 10+2


I am referring, in this example to the 8 and 12 in the last line of each character. Other characters have different codes.

Once more, thank you for all your help.
When I get something that worth to show, I'll post some pictures.
Will be nice to see someone else's work
Title: Re: Arduino WordClock
Post by: saturno on Aug 10, 2013, 09:57 pm
Superb explanation!

As for the space reserved for the loadBufferLong, I understand that it needs to be increased to allow loading more characters.
Since there are only few characters that I need to add, maybe I'll take your suggestion to replace some of the unused to the ones that I need to add.

Thank you.
Title: Re: Arduino WordClock
Post by: saturno on Aug 15, 2013, 02:57 am
Hello Riva,

After several hours around the build of the matrix (mine is 475 x 475 mm), I've just managed to see the result of half of the matrix (just one MAX completely connected by now).
The result is not what I was expecting. Without thinking or questioning, I used the diagram presented in the file "Clock7.pdf" to wire the first max to the arduino and as I can now see, my assumption was not correct.

Here is what I have done:
Since we usually read from left to right, I supposed that since you placed the IC1 at the right side of IC2, the schematic was drawn as seen from the back, i.e. when you see the watch from the front, the IC1 becomes the left and the IC2 on the right; and I wired my matrix exactly as in the schematic. At the moment, only the IC1 that, seen from the back of the watch, it is on the right side (right half) and when we turn around to see the "lights", it is on the left side.

Well the problem is that I missed something and now I have the initial string appearing from the left to the right (wrong) and, even worse all the characters are backwords (like mirrored). To see the characters correctly, I would need to turn around and see the watch from it's back...
(I hope my explanation make sense).

So, the question is: Can I "fix" my matrix without the need of rewiring everything?
What is the correct way to build the matrix?
(I can upload a little video to show you the problem)

Thank you for any help.
Title: Re: Arduino WordClock
Post by: Riva on Aug 15, 2013, 08:30 am

After several hours around the build of the matrix (mine is 475 x 475 mm), I've just managed to see the result of half of the matrix (just one MAX completely connected by now).
The result is not what I was expecting. Without thinking or questioning, I used the diagram presented in the file "Clock7.pdf" to wire the first max to the arduino and as I can now see, my assumption was not correct.
The schematic was the one I used to build both clocks so should work. It is based on this (http://playground.arduino.cc//Main/MAX72XXHardware) article. What you may have done (I did it first time) is forget that when your wiring the back of the board the SegX are reversed.
Here is what I have done:
Since we usually read from left to right, I supposed that since you placed the IC1 at the right side of IC2, the schematic was drawn as seen from the back, i.e. when you see the watch from the front, the IC1 becomes the left and the IC2 on the right; and I wired my matrix exactly as in the schematic. At the moment, only the IC1 that, seen from the back of the watch, it is on the right side (right half) and when we turn around to see the "lights", it is on the left side.
I'm not sure what the effect would be with only one chip as the matrix information is cascaded through one MAX into the next from right to left when LED's viewed from the front.

Well the problem is that I missed something and now I have the initial string appearing from the left to the right (wrong) and, even worse all the characters are backwords (like mirrored). To see the characters correctly, I would need to turn around and see the watch from it's back...
All you need to do is reverse the order of the 8/16 SegX pins and it should come good.
Title: Re: Arduino WordClock
Post by: saturno on Aug 15, 2013, 12:22 pm
That must be my mistake also. I will reverse the SegX wiring.

After some rest, I did a quick test viewing from the back, and everything showed correctly.

Just a quick question: When looking to the watch (front face after ready) what is the side of each IC?
I suppose that IC2 controls the left side of the matrix and the IC1 the right side, correct?

Thank you.
Title: Re: Arduino WordClock
Post by: Riva on Aug 15, 2013, 08:50 pm

Just a quick question: When looking to the watch (front face after ready) what is the side of each IC?
I suppose that IC2 controls the left side of the matrix and the IC1 the right side, correct?

Correct. Looking at the front (clock face) IC1 is on the right and IC2 on the left.
Title: Re: Arduino WordClock
Post by: saturno on Aug 20, 2013, 03:45 pm
Hi Riva,

After some early matrix wiring "orientation problems", here is a quick video to show you my wordclock matrix.

https://www.youtube.com/watch?v=Cl2p8FcFMuw&feature=youtu.be

The base is MDF, CNC machined 20 mm front / 5 mm back holes and since it is 475 x 475 mm I made the electronics independent: i.e.: 1 stripboard for the arduino, 2 stripboards for the MAX7219, 1 stripboard for the rotary encoder and the LDR is directly connected with a three wire cable (I need to see where I am going to place it at the final)
Right now, everything is just wired together and suspended. When I figure how to fix everything to the clock's back, I'll post some pictures.

I had to uncomment the setBrightness function to be able to make the auto-adjustable brightness work. Is there any reason for the function to be disabled in the code? It seems that it is working correctly without any further adjustment...

Working on the translation to see some "meaningful words", I noticed that there are two ways to light up a led:

Code: [Select]

lc.setRow (0, 0, B01111000)
lc.Setled (0, 1, 2, true)


After some changes I am experiencing some slight flickering when some (already translated) words light up.
When translation, I always used the function:
Code: [Select]
lc.setRow (0, 0, B01111000) as it seemed easier to do the match between the clock face and the code.

Can you explain to me why and when should I use each of these functions?

Thank you
Title: Re: Arduino WordClock
Post by: Riva on Aug 21, 2013, 09:11 am

After some early matrix wiring "orientation problems", here is a quick video to show you my wordclock matrix.

https://www.youtube.com/watch?v=Cl2p8FcFMuw&feature=youtu.be
The face looks good. Having access to CNC machine and creating the light wells is a good idea and should make the thing less susceptible to light bleeding from one cell to the next. Hence me having to use bits of black plastic straws.

The base is MDF, CNC machined 20 mm front / 5 mm back holes and since it is 475 x 475 mm I made the electronics independent: i.e.: 1 stripboard for the arduino, 2 stripboards for the MAX7219, 1 stripboard for the rotary encoder and the LDR is directly connected with a three wire cable (I need to see where I am going to place it at the final)
Right now, everything is just wired together and suspended. When I figure how to fix everything to the clock's back, I'll post some pictures.
Will be nice to see some finished pictures. You could probably have mounted all the electronics on one piece of stripboard to reduce the complexity. I don't envy the wiring looms you must have  :)

I had to uncomment the setBrightness function to be able to make the auto-adjustable brightness work. Is there any reason for the function to be disabled in the code? It seems that it is working correctly without any further adjustment...
setBrightness is still active but I moved it to the doTime routine so it only adjusts every minute as the clock face is changing. I found you could get into a brightness hunting condition sometimes where it originally was. The brightness would adjust every second between two brightness levels and as the MAX chips only have 16 levels you really noticed it.

After some changes I am experiencing some slight flickering when some (already translated) words light up.
When translation, I always used the function:
Code: [Select]
lc.setRow (0, 0, B01111000) as it seemed easier to do the match between the clock face and the code.

Can you explain to me why and when should I use each of these functions?
I would use setRow if no other letters from potential previously illuminated words are in that row else I would use setLed to finish filling the row and then setRow or setLed for the next row if the word spread across more than one row. Your likely getting flickering because your setting a led/filling a row and then another word is using setrow on the same row at a later point and wiping the previous led settings.
Title: Re: Arduino WordClock
Post by: saturno on Sep 25, 2013, 03:28 am
Hello Everyone, Riva specially!

Finally, my wordclock is ready to be shown. It is not completely terminated, but it will probably remain like this until I can have some more time to do what I have in mind.

It consists in a 475 x 475 mm MDF panel, with an acrylic on the front (with a black vinyl sticker with the lettering), three MAX 7219 that drive the 132 5mm white leds, an LDR to change the led intensisty according to the ambient light and a rotary encoder to set it up (just like Riva's).

Before I started this project I already had done a few experiments with the MAX7219 to drive a 7 segment display. So I took the strip-board that I've made and built two additional in order to be able to drive the remaining LEDs (132 total).

Right now everything follows very nearly the original project from Riva, besides the enclosure.
What I would like to do in the future is to change the rotary encoder with two capacitive touch buttons to make it real stealthy ;-)

In order to make it work with the three MAX7219, I had to modify the MAX library provided by Riva.
Initially, the library only supported 2 MAX ICs and to make the four corner leds work, I had to make it support all possible addresses of the three MAXes.
This one made me scratch my head a couple of hours. When I introduced the third MAX, at the beginning I started to see the corner leds light up but not in the way I was programming them. Test after test I started to realize that the leds were responding as they were controlled by the IC1. This led me to the solution as I stated for my own that it only could be a library related problem. After digging a little in the library I found that it was only prepared to manage addresses for 2 MAXes. Changed that and the corner leds started to work as expected! One per minute between each five minutes interval written with words

I just didn't realize yet how I will introduce some extended ASCII characters.
I didn't yet found where should I extend the loadBufferLong to accept all of the 255 characters. I think it is from the standard AVR library...
The other suggestion of replacing some unused characters of the fefault ASCII table is easier to implement. The only problem is that I did not figured yet how can I concatenate a character specified at the position 0x7f (for example) in an Birthday message or in a string of a Month...
I did see that for example you've used the character 0x7f (the 127 position) with the º character and that you've specified it's use in the temperature string.
How can I use such a character in a month string? Let's say "Março" that means March?

Thank you.

Ho! Here are some pictures:
Title: Re: Arduino WordClock
Post by: saturno on Sep 25, 2013, 03:30 am
A few more pictures:

Title: Re: Arduino WordClock
Post by: saturno on Sep 25, 2013, 03:31 am
A little more...
Title: Re: Arduino WordClock
Post by: saturno on Sep 25, 2013, 03:44 am
And the last batch.
Title: Re: Arduino WordClock
Post by: Riva on Sep 25, 2013, 09:00 am

Right now everything follows very nearly the original project from Riva, besides the enclosure.
What I would like to do in the future is to change the rotary encoder with two capacitive touch buttons to make it real stealthy ;-)
I like that idea, it annoyed me so much having buttons sticking out the back on the first wordclock I built I went for the hidden rotary encoder on the second version. It means you have to remove the back to adjust the clock but I have not needed to do that for about 8 months now. The clock back almost sits on the encoder shaft so pressing the clock back will scroll the date & temperature.

In order to make it work with the three MAX7219, I had to modify the MAX library provided by Riva.
Initially, the library only supported 2 MAX ICs and to make the four corner leds work, I had to make it support all possible addresses of the three MAXes.
The library is just a cut down version of the LedControl library. I had cut it down because the original clock used a ATmega8 and I was running out of Flash memory. The current code has a constant to define how many MAX chips are connected and should work.
Code: [Select]
const int numDevices = 2;               // Number of MAX7219 LED Driver Chips (1-8)

I just didn't realize yet how I will introduce some extended ASCII characters.
Just add then to this array.
Code: [Select]
prog_uchar font10x7 [] PROGMEM = {      // Large Ascii Font Matrix

I didn't yet found where should I extend the loadBufferLong to accept all of the 255 characters. I think it is from the standard AVR library...
The loadBuferLong is not from the ARV library. Just change the 0x7F to the new upper limit on the characters in the font10x7 array.
Code: [Select]
void loadBufferLong(int ascii){
    if (ascii >= 0x20 && ascii <=0x7f){


You will also need to adjust this code to send pixel data to the extra MAX chip.
Code: [Select]
// Display Buffer on LED matrix
void printBufferLong(){
    for (int a=0;a<7;a++){                              // Loop 7 times for a 10x7 font
        unsigned long x = bufferLong [a];               // Get buffer entry
        int y = (x>>24) & 0xff;                         // Mask off left hand character
        lc.setRow(1,a,y);                               // Send row to relevent MAX7219 chip
        y = (x>>16) & 0xff;                             // Mask off right hand character
        lc.setRow(0,a,y);                               // Send row to relevent MAX7219 chip
    }
}


The other suggestion of replacing some unused characters of the fefault ASCII table is easier to implement. The only problem is that I did not figured yet how can I concatenate a character specified at the position 0x7f (for example) in an Birthday message or in a string of a Month...
I did see that for example you've used the character 0x7f (the 127 position) with the º character and that you've specified it's use in the temperature string.
How can I use such a character in a month string? Let's say "Março" that means March?
If your using Windows then you could use character map to build the string up using the characters you need and then copy/paste into the sketch. As your matrix is a higher density you probably don't need the extra wide font I use and could maybe find/define the entire ASCII set with little problem.

Ho! Here are some pictures:
Looking good, I like the higher density of LED's
Title: Re: Arduino WordClock
Post by: saturno on Sep 25, 2013, 11:46 am
Quote
In order to make it work with the three MAX7219, I had to modify the MAX library provided by Riva.
Initially, the library only supported 2 MAX ICs and to make the four corner leds work, I had to make it support all possible addresses of the three MAXes.
Quote
The library is just a cut down version of the LedControl library. I had cut it down because the original clock used a ATmega8 and I was running out of Flash memory. The current code has a constant to define how many MAX chips are connected and should work.
Code:
const int numDevices = 2;               // Number of MAX7219 LED Driver Chips (1-8)


Well, I did saw that constant and it was the first logic change I've made.
What I described was what was happening *after* changing that constant. I now understand that the problem was the "stripped down" version of the MAX library...

Quote
I just didn't realize yet how I will introduce some extended ASCII characters.
Quote
Just add then to this array.
Code: [Select]

prog_uchar font10x7 [] PROGMEM = {      // Large Ascii Font Matrix



Well, that was what I have tried, but without success even after changing the upper limit from 0x7f (127) to 0xff (255) as you suggest below.

Here is what I did:
After the last character you have in the font10x7 - the symbol º (that by the way is not in the correct position of the ASCII, but I understand that you put it there just for convenience), I created a new character that for this matter isn't relevant. That additional character will be in the 128 position (original 127 plus 1).
The quick test I've made was to call that new character I've added (at the position 0x80) after the 0x7f (º) you concatenate at the end of the temperature scrolling string.
The result is just a blank space...

I didn't yet found where should I extend the loadBufferLong to accept all of the 255 characters. I think it is from the standard AVR library...
Quote
The loadBuferLong is not from the ARV library. Just change the 0x7F to the new upper limit on the characters in the font10x7 array.
Code: [Select]

void loadBufferLong(int ascii){
    if (ascii >= 0x20 && ascii <=0x7f){


Yes, I did that. I changed the upper limit to 0xff which is 255 and the only position I used was after 0x7f which is 0x80 (which is position 128).
I then changed the end of the temperature string to test the new character visibility, like so:
Code: [Select]
    int x=strlen(chrBuffer);
    hrBuffer[x++] = 0x7f; // the º character at the position 127
    chrBuffer[x++] = 0x80; // my new character at the position 128 which don't show in the scrolling text
    chrBuffer[x++] = ' ';
    chrBuffer[x++] = ' ';
    chrBuffer[x] = 0x0;
    scrollRamMessage();
[/color]


Quote

You will also need to adjust this code to send pixel data to the extra MAX chip.
Code: [Select]

// Display Buffer on LED matrix
void printBufferLong(){
    for (int a=0;a<7;a++){                              // Loop 7 times for a 10x7 font
        unsigned long x = bufferLong [a];               // Get buffer entry
        int y = (x>>24) & 0xff;                         // Mask off left hand character
        lc.setRow(1,a,y);                               // Send row to relevent MAX7219 chip
        y = (x>>16) & 0xff;                             // Mask off right hand character
        lc.setRow(0,a,y);                               // Send row to relevent MAX7219 chip
    }
}



Thanks for the tip, but I think I don't need this because the third MAX only controls the four leds on each corner. It is not used to show anything when a message is scrolling.

Quote

The other suggestion of replacing some unused characters of the fefault ASCII table is easier to implement. The only problem is that I did not figured yet how can I concatenate a character specified at the position 0x7f (for example) in an Birthday message or in a string of a Month...
I did see that for example you've used the character 0x7f (the 127 position) with the º character and that you've specified it's use in the temperature string.
How can I use such a character in a month string? Let's say "Março" that means March?
Quote
If your using Windows then you could use character map to build the string up using the characters you need and then copy/paste into the sketch. As your matrix is a higher density you probably don't need the extra wide font I use and could maybe find/define the entire ASCII set with little problem.


I think I don't understand.
Consider that the string you defined as March is written like this: Márch (acute in a).
Consider that the "á" (acute a) is defined at the position 128 (0x80) and that you are able to show it alone in the scrolling text (I'm not at this moment).
How do you redefine the code for March string in the following code so is shows as Márch (small a with acute) and not March?

Code: [Select]


prog_uchar Month03[] PROGMEM = {
    "March \0"};




Thanks for your time and help.
Title: Re: Arduino WordClock
Post by: Riva on Sep 25, 2013, 12:08 pm

How can I use such a character in a month string? Let's say "Março" that means March?
Quote
If your using Windows then you could use character map to build the string up using the characters you need and then copy/paste into the sketch. As your matrix is a higher density you probably don't need the extra wide font I use and could maybe find/define the entire ASCII set with little problem.


I think I don't understand.
Consider that the string you defined as March is written like this: Márch (acute in a).
Consider that the "á" (acute a) is defined at the position 128 (0x80) and that you are able to show it alone in the scrolling text (I'm not at this moment).
How do you redefine the code for March string in the following code so is shows as Márch (small a with acute) and not March?

If you have defined the acute a (á) as character 0x80 then using Windows Character Map program just select the 'System' font and make up the string you need and then copy/paste it into your sketch. As an example I did this and end up with 'M€rch'. In the system font the a looks like a vertical bar but in the forum font it looks like a euro currency sign.





Thanks for your time and help.
If I get time I will investigate the problem of going beyond character 0x7F
[/quote]
Title: Re: Arduino WordClock
Post by: saturno on Sep 25, 2013, 01:15 pm
I'm sorry Riva I think I did not explain me correctly.

I am able to construct any string in my language as my keyboard have all those special characters. I think your suggestion about the windows character map was just to make me find that characters.
The problem is that whatever character I made a string of - lets say Março (for March), the "ç" cedilla does not show in the rotating string because I can't call characters with values >= 0x7f and I don't know how can I concatenate whatever character position specified in the font10x7 into a month string or other message.

Something like this:

Assume I have replaced the character int font10x7 at position 0x7f with the character "ç".
How would I change the code below in order to replace the fourth letter - the c, with the one (correct) I created at the position 0x7f?

Code: [Select]

prog_uchar Month03[] PROGMEM = {
    "Março \0"};


I know this is not the way, but you get the point  ]:)

Code: [Select]

prog_uchar Month03[] PROGMEM = {
    "Mar"+0x7f+"o \0"};


What I was asking was if there was a simpler solution to define the strings I need with special characters (months and names in aniversaries) in a more friendly way than the one you use to put together the string for advertising the temperature:

Code: [Select]

void doTemperature(){
    chrBuffer[0] = ' ';
    chrBuffer[1] = ' ';
    chrBuffer[2] = 'I';
    chrBuffer[3] = 't';
    chrBuffer[4] = 's';
    chrBuffer[5] = ' ';
    chrBuffer[6] = 0x0;


If someday you want and find time to investigate this, I appreciate if you could share a possible solution with me.
Thank you.
Title: Re: Arduino WordClock
Post by: Riva on Sep 27, 2013, 10:14 am
Home at last and after testing I can add more characters to the font10x7[] definitions and then alter the 0x7f bound in loadBufferLong to display them. I'm not using the wordclock to display though (one is 400 miles away and the other my wife won't allow me to play with any more) but am using a Rainbowduino with the same core code as used in the clock, just the rendering routine is different.
I knocked up an extended (0x20-0xff) double width font based on the Windows Terminal font while at work but it's now 12x8 instead of 10x7 so will need a few more changes to get it working + not all the extended characters are correctly defined. I also had the original (pre double width) 6x8 version but unwittingly messed it up when doing a final search/replace to make it arduino compatible. I will do it again when I go back to work next week.
I used a free GLCD font creator from here (http://www.mikroe.com/glcd-font-creator/) to import and convert the terminal font and then knocked up a quick VB6 program to change the font program output from hex to binary and rotate the data through 90 degrees, another VB6 program I had already was then used to double the width.
Title: Re: Arduino WordClock
Post by: saturno on Sep 27, 2013, 12:58 pm
Well, in that case I must be doing something wrong or missing something!

I've extended the loadBufferLong to support ascii codes until 255:

Code: [Select]

void loadBufferLong(int ascii){
    if (ascii >= 0x20 && ascii <= 0xff) {
   ...


and then, I've just added some test character to the end of the font10x7 definition. So, that additional character is now after 0x7f, so it is on the 0x80 position (at least I think so).

If I explicitly call that character for example in the code below, i don't see anything different in the new scrolling text...
The first position of the array that should hold the new character 0x80, just don't display anything. It is just like a space...

Code: [Select]

void doTemperature(){
    chrBuffer[0] = 0x80;
    chrBuffer[1] = ' ';
    chrBuffer[2] = 'I';
    chrBuffer[3] = 't';
    chrBuffer[4] = 's';
    chrBuffer[5] = ' ';
    chrBuffer[6] = 0x0;


Thank you for the link for the GLCD font creator. I didn't knew it and I am going to try it out. From my quick review, It appears that it only exports to an hexadecimal format, that need a good amount of work to make it usable in this project.

Some time ago I came across The LED Matrix Studio here (http://www.freshney.org/electronics/builder.htm), but didn't did anything with it yet.

I really appreciate your help, support and time.
Best regards
Title: Re: Arduino WordClock
Post by: pippin88 on Jan 06, 2014, 01:24 pm
Riva,

Great work on the clock!
I'm midway through building one with a 6x16 array (6 rows high, 16 columns (two max7219 driving 6x8 each)).
I've got all the basics going great, thanks for the code.

However, the scrolling message doesn't scroll from right to left across both arrays - it runs on both arrays independently (with a slight delay).

I have the MAX7219s cascaded (DOUT to DIN) with parallel load and clk

I can't find why it is doing this. Could it be something to do with my matrix being 6x8 rather than 8x8?
I've tried other code that's supposed to scroll correctly (http://forum.arduino.cc/index.php?topic=170043.msg1265321#msg1265321 and others) but all have the same effect.

Any help is appreciated.
Code attached.

Turns out I had the Max7219 in the wrong order. Riva pointed out in another post that the first Max7219 should be on the right side of the display (I had it on the left...). Swapped over wiring and all fixed!
Title: Re: Arduino WordClock
Post by: Riva on Jan 06, 2014, 06:42 pm

Turns out I had the Max7219 in the wrong order. Riva pointed out in another post that the first Max7219 should be on the right side of the display (I had it on the left...). Swapped over wiring and all fixed!

Glad you got it sorted. Had I seen this post earlier I would have asked the chip order but you managed to find the problem okay.
Title: Re: Arduino WordClock
Post by: pippin88 on Jan 07, 2014, 09:04 am
Riva,
Wondering if you can help me with scrolling font?

My matrix is 6x16 (6 rows, 16 columns).
Now that I have the Max7219s in the correct order, your code works great, however the bottom two rows don't exist, so of course the font is cut off at the bottom.

Can you point me in the right direction for modifying the code to work with my size matrix?

EDIT: Looks like SetScanLimit might be what I need, will have a fiddle.

Thanks heaps,
Nick
Title: Re: Arduino WordClock
Post by: Riva on Jan 07, 2014, 12:00 pm

My matrix is 6x16 (6 rows, 16 columns).
Now that I have the Max7219s in the correct order, your code works great, however the bottom two rows don't exist, so of course the font is cut off at the bottom.
You will have to re-design the font as it's currently 7 rows high.

Can you point me in the right direction for modifying the code to work with my size matrix?
Every character would need to be reduced in height.
From this...
Code: [Select]
    B00111111, B00000000, //A
    B11000000, B11000000,
    B11000000, B11000000,
    B11000000, B11000000,
    B11111111, B11000000,
    B11000000, B11000000,
    B11000000, B11000000,
    12,

to something like this...
Code: [Select]
    B00111111, B00000000, //A
    B11000000, B11000000,
    B11000000, B11000000,
    B11111111, B11000000,
    B11000000, B11000000,
    B11000000, B11000000,
    B00000000, B00000000,
    12,

You would also need to do the same to the 6x7 number font. You could also adjust the code to take account of the smaller font but it's easier if you just reduce the height and leave the padding at the bottom to maintain 7 rows of font data and one kerning value.
EDIT: Looks like SetScanLimit might be what I need, will have a fiddle.
Scan limit will not help here as the font is physically to large to fit in 6 rows.
Title: Re: Arduino WordClock
Post by: pippin88 on Jan 07, 2014, 01:00 pm
Riva,

Thanks, working on that now. I arrived at the same conclusion regarding using padding at bottom (rather than modifying the row iteration code).

Many thanks for your help.
Can I buy you a beer via donation or something?
Title: Re: Arduino WordClock
Post by: Riva on Jan 07, 2014, 01:33 pm

Can I buy you a beer via donation or something?

Just exhibit your finished clock for all to see, as it differs from this design it may be of more use to somone.
Title: Re: Arduino WordClock
Post by: pippin88 on Jan 09, 2014, 12:30 pm
Once again many thanks to Riva for his code and his help.
After many hours fiddling and learning a bit of C++ I've come up with my own branch of his code.

Features:
Uses push buttons rather than a rotary encoder
- set button if pressed briefly displays date and temp. If held for >2 seconds enter setup.
- once in setup use up & down buttons to change value, and hit set to enter that value
- brightness button to change LED brightness in steps
Added explanation prompts to setup (time entry)
- now display 'Hour' before entering hours, then 'Min' before entering minutes etc. Easier than remembering order!
(quite happy with this one, mainly because I worked out how to implement it logically and did so quite quickly rather than headbutting a wall for hours as with my other changes!)
Font adjusted for 6 row high matrix
- needs a little more work
- an odd numbered matrix is better for font display (e.g. showing a 5 on an even number row display means the sizing is not equal to other characters)
Adjusted clock display to suit my requirements.




I currently have 5 buttons (set, up, down, mode, brightness). I'm thinking I can minimise that to 3 but using 'mode' and 'brightness' as 'up' and 'down' once in setup
Title: Re: Arduino WordClock
Post by: Riva on Jan 09, 2014, 01:22 pm
Hi pippin88,
Glad your managing to adapt the hardware/code to your needs.

The first word clock I built (code attached) used 3 buttons but I did not like them sticking out so opted for a rotary encoder hidden behind the back panel instead. It's spindle length is set so pressing the back panel will trigger the encoder button. I have only had to adjust the time about twice in the last 18 months so taking the back off to do so is no real problem. I was considering implementing a wireless connection so I could update/adjust over bluetooth or using a radio clock module (http://www.pvelectronics.co.uk/index.php?main_page=index&cPath=9) . I cannot get GPS time in the house so that was not an option.

The time adjust code should/does light a character to denote what your adjusting but the prompt you have is a good idea.
You have prompt strings defined in PROGMEM but choose to built them in RAM one char at a time Is this an oversight or orphan code?

I'm looking forward to some pictures/video when you finished/happy with your clock.
Title: Re: Arduino WordClock
Post by: pippin88 on Jan 10, 2014, 03:26 am
Riva,

I'd planned to implement the prompt strings in PROGMEM up the top, but late last night found it easier to just implement a character at a time at that point in code. I've now done so (was easier than I thought, but hey - you don't have to understand code to copy it and fiddle it in to working!)

I plan to have my buttons recessed into the side. I've built up a few toys (CNC router, laser) that I'll be using in the build. I plan to make the clock body with light baffles etc all from one piece of wood, with an acrylic (perspex) from and back cover.

Attached is new revision which uses messages defined up top of program (easy to change) for the prompts in time setup.

I should note I haven't actually changed the daylight saving stuff (dates etc) just changed the naming to DST (terminology with use in Australia)
Title: Re: Arduino WordClock
Post by: Riva on Jan 10, 2014, 08:13 am

I'd planned to implement the prompt strings in PROGMEM up the top, but late last night found it easier to just implement a character at a time at that point in code. I've now done so (was easier than I thought, but hey - you don't have to understand code to copy it and fiddle it in to working!).
The code I wrote may not be the best as this was the first project I had done using C++ but I could get the idea of what to do by looking at others code. Also I used a program that converts VB to C++ to see how to implement some of the conditional stuff

I plan to have my buttons recessed into the side. I've built up a few toys (CNC router, laser) that I'll be using in the build. I plan to make the clock body with light baffles etc all from one piece of wood, with an acrylic (perspex) from and back cover.
<Sigh> CNC router & laser. I wish I had the time/money & space for such items.

I should note I haven't actually changed the daylight saving stuff (dates etc) just changed the naming to DST (terminology with use in Australia)
BST is the Brit terminology but most people here would probably understand DST.
Title: Re: Arduino WordClock
Post by: ParaDoXke on Aug 21, 2014, 01:11 pm
Hi,
I am also planning to make a word clock, but I was wondering if it is possible to control a 10x11 display + 4 separate leds for the display of the minutes. I noticed that the max7219 controller only supports 8x8 displays. So there is no problem when making a 8x16 display, but when using a 10x11 display, I have to use parts of the second controller to control the bottom lines. Is this possible?
Title: Re: Arduino WordClock
Post by: Riva on Aug 21, 2014, 03:02 pm
Each MAX7219 can control 64 LED's with 8x8 display being the most common layout but you could arrange the LED's in any pattern you want as long as they are wired on the 8x8 matrix style needed by the MAX7219 chip. Where it would become more complicated is determining what LED is what when they are set out in a non 8x8 pattern. For a simple word clock this would be relatively easy as the LED's go on/off in set patterns but if you want to include scrolling text then it will become really complex.
Title: Re: Arduino WordClock
Post by: ParaDoXke on Aug 21, 2014, 03:18 pm
Thanks for the answer.
Maybe I 'll try to reorder my text so I am able to use a different size matrix. Is there anyone who used a dutch layout?
Title: Re: Arduino WordClock
Post by: Riva on Jan 03, 2016, 10:50 am
From a PM sent to me...

hi riva,
im sorry if my english to bad.
im try that code do you add in the forum, but error if i try to comply.
please help me, im Indonesian, and im wan to tray like you.

thank's a lot..
Your English is a lot better than my Indonesian.  :)

I do not know why you cannot compile the code. I just downloaded the sketch and libraries from this (http://forum.arduino.cc/index.php?topic=118338.msg890787#msg890787) post and the code compiled fine using IDE version 1.0.6 (here (http://arduino.cc/download.php?f=/arduino-1.0.6-windows.zip)).
Have you installed the libraries in the right place?
Have you selected the correct Arduino in the IDE? I wrote the code for the UNO and don't know if it will work properly on other types of Arduino.

Please direct any other messages to the original thread.
Title: Re: Arduino WordClock
Post by: ParaDoXke on Jan 04, 2016, 10:39 pm
I had exact the same problem: I was using version 1.6.6. Using 1.0.6 fixed the problem.
Title: Re: Arduino WordClock
Post by: wien23 on Jan 06, 2016, 12:04 pm
Hi Eva,
i'm very happy you reply my message. I am happy and thanks to you about problems had been solved compiled.
but i have a new problem cause i use arduino uno, how about the schematic, and the pins are to be used? if any change about the code?

please help me,  :) :)
Title: Re: Arduino WordClock
Post by: Riva on Jan 06, 2016, 01:05 pm
Hi Eva,
i'm very happy you reply my message. I am happy and thanks to you about problems had been solved compiled.
but i have a new problem cause i use arduino uno, how about the schematic, and the pins are to be used? is any change about the code?
If your using the UNO then the only pins you need worry about from the schematic are the ones on the right side of IC3.
Schematic pin 23 (PC0) connects to A0 on UNO
Schematic pin 27 (PC4) connects to A4 on UNO
Schematic pin 28 (PC5) connects to A5 on UNO
Schematic pin 2 (PD0) is not needed/connected as the UNO uses this for USB serial
Schematic pin 3 (PD1) is not needed/connected as the UNO uses this for USB serial
Schematic pin 11 (PD5) connects to D5 on UNO
Schematic pin 12 (PD6) connects to D6 on UNO
Schematic pin 13 (PD7) connects to D7 on UNO
Schematic pin 16 (PB2) connects to D10 on UNO
Schematic pin 17 (PB3) connects to D11 on UNO
Schematic pin 18 (PB4) connects to D12 on UNO

Title: Re: Arduino WordClock
Post by: wien23 on Jan 13, 2016, 04:22 am
Hi Riva,
it's hard to me to understang that scematich, cause i'm haven't electro baground, but i wanna make once for a gift..
so yesterday i buy some parts again.
can you help me make the schematic if i use arduino mega or uno (stand alone)
this a material i have :
1. 7805 Regulator
2. MAX7219
3. DS 3231 (http://i.ebayimg.com/images/g/UzoAAOxyFd1SKA37/s-l300.jpg)
4. Switch
5. LDR
6. Cristal 16MHz
7. 22pF, 0.1uF, 0.33uF, 10uF Capacitor
8.10 K Resistor
9. 27 K resistor
10. arduino mega orarduino uno stand alone
thanks for your help..
Title: Re: Arduino WordClock
Post by: Riva on Jan 13, 2016, 04:17 pm
As your using a pre built Arduino UNO you will not need the Crystal or the 22pF capacitors. You will need a rotary encoder like this (https://www.sparkfun.com/products/9117) though as you don't have it on the list.
Title: Re: Arduino WordClock
Post by: wien23 on Feb 13, 2016, 08:36 am
huffi it's complicated.  :'( :'( :'(
now i'm buy arduino mega, because have many pin output.
eva can you help me about the schematic? and code if i use arduino mega. i'll put that arduino mega in the clock, so i'm use 9V adaptor plug to the arduino as power supply.

tq so much
Title: Re: Arduino WordClock
Post by: Riva on Feb 15, 2016, 09:53 am
You use exactly the same pins on the Mega as you would on the UNO. See attachment in #72