I'm trying to make a Infinity Clock Mirror with 60 individual 5mm RGB LEDs. So im looking for IC to use for this. I only know about atmega328p. I was planning to use 10 of them and connect them with i2C.
If you can help me to find a better IC to use with lot more outputs that can be programed like arduino IC.
I think thats waste, connecting so much processors. If you want to control it separetly you can use only one chip and it can be for example attiny85 etc. I think for your use is best to use LEDs with integrated circuit like these: http://www.ebay.com/itm/381165880223?rmvSB=true
Yes it is expensive but you will need only one chip and only 2 pins on this chip.
If you want you can also buy these leds like led strip.
I'm just a student starting out with arduino projects.
I have already bought 60 RGB LED and drilled holes and paled them on a old clock.
Yes i have to use these 5mm RGB LEDs. Hoping to find a cheap way to get this done with what I have.
I don't mind soldering for hours.
cheaper the better
Doh! You might want to consider buying some 5mm Neopixels instead it is going to be a whole lot easier.
If you insist on using the LEDs you have you have to buy other stuff as well. This project of mine is basically 64 RGB LEDs multiplexed with three TLC5940 controllers. Because they are multiplexed they will not be as bright as the Neopixels and there is a very lot of soldering. Don't mind the layout just use the same circuit. You don't need the input switches either.
I think your idea of using multiple processors is pretty cool. But 10 is a bit of an overkill for sure if you don't mind a bit of multiplexing code and the expense of a little brightness sharing the on time.
Unless I am missing something, with two 328p or arduino UNO's you should be good. Multiplex the 60 leds into 5 rows of common RGB and 12 common Anode or Cathode columns. The 5 rows of RGB lines will require 15 pins so use one processor to drive these (2-16. The other processor can drive the 12 Anode or Cathode lines and have a few left over for buttons or whatever. Using i2C between the two, one would be the Master and the other the slave. The slave would just listen for a simple 2 byte command from the master, bit mapped to which pins it should turn on. The Master would turn on the corresponding pins to light that LED of the matrix. It is a lot of soldering, but you could just do the first 12 in the circle, then then next twelve, etc., until you had 5 groups. Next connect all the LED#1's common line together from each group, then LED#2's common line from each group, etc. Be sure to use limit resistors on both the columns and the rows. Run the 5 groups of 3 RGB lines to one processor and the 12 common lines to the other. And start programming.
Since the slave really is not doing very much, you could have it do other stuff while it wasn't turning pins on or off for the Master. If you are a clever programmer you could have the Master hand off control to the slave for a few LED patterns of its own, and during that time the Master would be slave and turn its pins on or off as requested. I did something similar once with a 3x3x3 LED cube and four 8 pin processors talking via i2C. It actually worked really well as impractical as it was. Even with limited Flash space, between all four processors there was enough for a lot of 3x3x3 patterns.
The communication and the processors should be fast enough to scan the 12 columns, leaving each on long enough to appear they have stayed on. I would drive the columns with the master, sending the RGB pattern first to the Slave. Probably a good Idea to have the slave read the next pattern in the background and change it after a preset time past receipt. This way the column change can be coordinated. The master could also PWM the columns in software for more brightness control.
Coding should be fun. Let me know how it goes if you try it. I have enough parts lying around to try it myself so maybe I will get inspired.
I think your idea of using multiple processors is pretty cool.
I strongly disagree, the use of multiple processors is almost always a very poor decision choice. This is because communication between processors then becomes the big problem. It is a solution often proffered by beginners but this is mainly due to their lack of knowlage about what a single processor can do.
If the OP is determined to go ahead with normal LEDs then I would suggest he looks at the ShiftPWM library and just chains together shift registers.
Are they common anode, or common cathode RGB LEDs?
If common anode, you can use 10 WS2803s to control 6 LEDs each (18 IO) and have full 8-bit (256 level) color/brightness control for each color.
They are available from a source in Niagara Falls on e-bay.
How many colours do you want? Would 7 be enough (red, green, blue, yellow, cyan, magenta, white)? How many lit at once? How bright, indoor use only?
Are your leds common anode or common cathode?
The reason for my question is that it may be possible to control all your leds with a single atmega328 using a technique called charlieplexing. 16 outputs can be used to control 16 x 15 = 240 single-colour leds or 80 rgb leds.
For 60 rgb leds, 12 transistors would be needed to boost the current to the common anodes/cathodes of each group of 5 rgb leds. The current would need to be limited to around 12mA per led (36mA per rgb led). This would be combined with a 1:12 multiplex ratio, i.e. only one of the 12 groups of 5 rgb leds would be lit at any instant in time, but the groups would be lit in sequence at high speed so that the eye sees all leds it at once. This results in considerably lower brightness, with an average of only around 1mA per led (3mA per rgb led) but that may be OK for indoors