my question is: how can i control 80 rgb leds separately with my arduino uno deveice? I already know that i need some kind of shift register, but i'm not sure about the wiring. And an additional problem is the limitation of the pwm channels (arduino uno does only have 6 of them). Is it possible to realize? Do I need arduino mega in this case?
Thank you for quick reply. To be honest the project is close to my. thats true. But in your link there is a ready platform which you can solder and programm on your own.
At the page you gave there was a link about the how to make it -> Page 9
As far as i understood they use 3 x Atmega 168 microcontroller
I just need a kind of shift register ( without additional parts ) for the huge number of rgb leds (80 and more). if somebody has an idea how to do this with only one microcontroller (using only Arduino uno as a master with a lot of slaves --> shift registers), a scheme maybe?
I would keep the hardware as simple as possible. In my case i need to drive 80 pins for the red, green and blue color. That are 240 leds total.
So I have to wire this chip 6 times behind each other only to control the red color. right?
scheme
| Arduino |
| |
| |
| |(PWM channel)--> to 16 bit chip ->to 16 bit chip ->to 16 bit chip ->to 16 bit chip ->to 16 bit chip ->to 16 bit chip -> control of 80 red leds
Does it works with pwm?
To Magician
thank you Magician for the link. There are a lot of solution. But I'm not genius I doubt about the wiring of al those 240 separate leds. In your link there is a one interesting method of controlling, using a TLC5940, a 16 bit chip. could I solve my problem by attaching this chip six time behind each other to provide a single channel for every led? and this for red green an blue?
Assuming a 5 (rows) x16 (columns) RGB LED matrix, you can use 3 chained 16-bit shift registers for columns and 5 transistors for the rows.
This is the schematic for Meggy Jr RGB:
in case I will do it on my own: Just correct me if i understood it right.
i connect to some pins of arduino a 16- bit-chip and to some other a 8-bit-chip ( but i use only 5 of 8 outputs). this lead to a 16 x 8 matrix (controlled by using I2C or SPI). right?
what i didn't understand is how can I control each color in my matrix, please explain.
p.s. in your link there is no concrete sketch about the wiring
thanks all who paid attention till now for my little project.
I thought a lot about it and I had an interesting idea.
I create a 16x16 matrix (by using a 4 x 8-bit chips 74HC595). 80 channels I use for each color, so totaly use 240 of 256 channels. I hope this should keep my project simple and clear to overview.
Is it possible?
I'm also doubting how can I communicate with all them at same time.
At this page
I found the way of connecting, see picture, but there is only place for the one spi device.
I create a 16x16 matrix (by using a 4 x 8-bit chips 74HC595). 80 channels I use for each color, so totaly use 240 of 256 channels. I hope this should keep my project simple and clear to overview.
Is it possible?
No, multiplexing with such high (16) ratio would make brightness of display really low. And you can't multiplex RGB led's in this manner, as there is only 1 common pin (anode or cathode) for 3 colors, so ratio 1:3 should be observed.
80 : 3, as it was advised somewhere in the beginning of this topic, IMHO, the optimal value between soldering/wiring workload and brightness.
10 IC 74HC595 plus three transistors.
I just finished my new (toy) project with 9 74HC595, only I have smaller number of leds - 24 strips, there is no multiplexing for color, just 1 linear array so I get maximum brightness level from leds. Video clips still uploading to youtube. http://coolarduino.wordpress.com/2012/06/21/tears-of-rainbow/
No, multiplexing with such high (16) ratio would make brightness of display really low. And you can't multiplex RGB led's in this manner, as there is only 1 common pin (anode or cathode) for 3 colors, so ratio 1:3 should be observed.
80 : 3, as it was advised somewhere in the beginning of this topic, IMHO, the optimal value between soldering/wiring workload and brightness.
Magician could you explain me the ratio and brightness you refered to in your post.
When you organize LED in matrix configuration ( to save on hardware/ and assembly time), you "lighting-up" one column of matrix at a time. Periodically "scanning" every column, (refresh rate ~60 Hz) all LED's will have a chance to lights-up. But there is nothing for free, as "lighting" time of each column getting shorter T = 1 / N, where N number of column, brightness goes down directly proportional to this coefficient.
To fix it you can "bump-up" current inside time-slot, but there is a limits, pulse current to DC ratio can't be more than ~5-8
edited: after searching on google , ~ 2-3
, and even less for high power leds. So matrix size couldn't be extended above 8 w/o noticeable losses in brightness level.
Quote
10 IC 74HC595 plus three transistors.
How should I image / realize this?
You connecting all LEDs common pins to 74HC595 pins, 10 IC = 8 x 10 = 80 pins.
All red pin connected together and goes to transistor. Same with green and blue.
In software you selecting "color" than outputing "brightness" train for all 80 LEDs. There would be 3 time slot, so you better to "bump-up " a current x3 times to get full luminosity of display.
I missed resistors, common anodes/cathodes, PNP/NPN etc as it all depents on part number you select for LED