Mornin' folks. I'm doing a thesis project for Biomedical EET, and having a hard time selling this idea to my digital instructor. He want's me to use the 8255PPI instead, and my proposal is this Friday. This is basically going to be a vision testing system, but I've been having issues with controlling 16 RGB low power LED's for the color vision test.
The most simple(and expensive) way for pull this off would be to use 3 Arduinos to pump out the PWM signals needed. I've read some other threads on similar topics advising the use of shift registers but I've only really used shift registers for single 0's or 1's, not PWM.
Is there any way I can cut the cost of this project using shift registers or am I just giving myself a headache? :-?
you could do it pretty easily. dedicate a timer to count in a loop, compare the value to some stored in a table, if the amount is less, shift out a 1, if it is more, shift our a 0. then start again when you get to the number that is your resolution limit.
you can use bitWrite() to set the values easily in the byte you shift out. there should be several examples floating around, check the playground, and search the forum
Wow I didn't realize how rookie this is. I really should have used the search function a bit more, but thanks guys for letting me know about the TLC4950. Not only is there a library thread for it. (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1218174457/15), but there's also a snazzy shield for it at RobotShop (RobotShop | Robot Store | Robots | Robot Parts | Robot Kits | Robot Toys). Thanks so much for catering to my ignorance on the subject. :-[
Now all there is to do is to figure out which model of the TLC5940 to order. It seems there's a number of different models available, a lot of them very similar with the exception of the TLC5943, which has a much greater number of dimming steps, both PWM and analog. Is this model more appropriate for attaining the hues the patient needs to discern between? They seems awfully close together.
Using a TLC5940 gives you 4096 brightness levels, as the human eye can only detect about 128 levels of brightness I would say it is fine.When I have played with it a JND (just noticeable difference) is always in the order of about 10 steps.