Help! PIC Controlled LED Array Circuit - 100 LED's??

I am new to electronics, but a programmer by trade. I am trying to achieve a circuit of up to 100 independently controlled LED's (not segmented display modules). Ideally the circuit would be controlled by one or more PIC microcontrollers as I have a Willem II programmer. My application is artistic in nature and requires the leds to be spread out over a wide area as opposed to being in a grid formation.

I have heard a lot of conflicting reports about Maxim's MAX721xx chips for this job. Some say it's the one I want, but others (including an actual Maxim tech-supporter) say it's more suited to the segmented displays. I have experimented with this chip with little success.

Has anybody achieved anything like this? I have scoured the Internet and newsgroups for literally weeks looking for a matching schematic and source module. I have found a few Basic Stamp modules but I'm not setup for that at all and would rather stick with native PIC. The only compiler I have is MPLab's MPASM.

Many thanks to anyone that can help

Reply to
Scott Hooper
Loading thread data ...

This is doubtless the cheapest way to control 52 leds from a single 8 bit port.

formatting link
I'll leave it to you to scale it up.

Peter

Reply to
Peter

In article , Scott Hooper writes

I have done it using 74HC595 serial to parallel chips. 8 leds off each chip, and you just chain them together, the whole thing becomes one big serial shift register requiring only 3 pins from the micro. They will drive low current LEDs directly or add a ULN2803 driver chip to drive up to 500mA per output. Cheap and it works.

--
Tim Mitchell
Reply to
Tim Mitchell

Better do some calculations first, that method is cute, but scales HORRIBLY.

I suggest either the simple-Simon static drive by serial SR suggested by someone else, or a low multiplex ratio n x m array. No more than

8:1 mux ratio. For example, 8 high side drivers and 16 low side drivers, with a timer-triggered ISR controlling the drivers would work nicely. At 20mA each, 100 LEDs will draw 2A maximum. The drivers could be as simple as 4 SOIC-8 dual MOSFETs, 2 D-MOS power shift registers, and 16 resistors, for driving up to 128 LEDs at full brightness.

Best regards, Spehro Pefhany

--
"it's the network..."                          "The Journey is the reward"
speff@interlog.com             Info for manufacturers: http://www.trexon.com
Embedded software/hardware/analog  Info for designers:  http://www.speff.com
Reply to
Spehro Pefhany

Check out

formatting link
for some nice LED driver chips (up to 32 channels each I believe). They are good with samples too.

Mike Anton

Reply to
Michael Anton

Hi Tim,

This sounds like exactly the sort of thing I'm after. I google'd that chip and it does sound like the chip for the job. A few questions: What PIC did you use? Do you have a schematic of how it goes together? Do you have a source module available? What language/compiler was used? (I did say a few questions :) ) Lastly, something confuses the heck out of me... I can see that you can daisy chain the 74HC595 chips together, but how do you tell your PIC which one to address?

To everyone that replied, thank you very much. But I am quite the novice and hoping that someone can provide me with a PIC-compatible schematic/source-code combo

Thanks heaps

Reply to
Scott Hooper

Why not several PICs 1 master and the rest slaves.

Reply to
Neil Kurzman

Have you looked into using some kinda FGPA?

Reply to
galto

snipped-for-privacy@gmail.com (Scott Hooper) banged on the keyboard until producing news: snipped-for-privacy@posting.google.com:

Get yourself some 74154 decoder chips. 4 inputs to 16 outputs; active-low on the output. A couple of these as a matrix would give you 16^2 capability for only 8 output pins (or even only 5 if you commoned the inputs and used a line for device select).

--
* * * * * * * * * * * * * * * * *
Dorsai - Author of Erotic Fiction
http://www.asstr.org/~Dorsai
* * * * * * * * * * * * * * * * *
"Making fun of born-again christians is like hunting dairy cows with a 
high powered rifle and scope." -- P.J. O'Rourke
Reply to
Dorsai

In article , Scott Hooper writes

Didn't use a pic, used an 8051. Code was 8051 assembler but it's really simple.

You address the chips just by clocking the bits out. Say you're controlling 64 LEDs, you clock out 64 data bits (set the value to the data pin, take the clock pin low then high, 64 times). The first data bit goes to the LED furthest from the pic, then each bit goes to the next LED, the 64th bit going to the LED nearest the pic in the chain.

On the 595 chip, once you've clocked all the bits into position, you toggle a latch line to set the bits to the outputs (display them).

--
Tim Mitchell
Reply to
Tim Mitchell

I've done 96 LEDs using a PIC 18F242 and 6 Allegro A6276 16 bit shift register/driver chips, which works really well. I use software generated PWM to allow each LED to have an independent 8 bit brightness level, controlled by an RS485 input.

Martin

Reply to
Martin Walton

That sounds pretty good. Are you able to point me to a schematic & matching code example of that scenario?

Reply to
Scott Hooper

snipped-for-privacy@gmail.com (Scott Hooper) banged on the keyboard until producing news: snipped-for-privacy@posting.google.com:

Google 74154 decoder, you'll turn up the whole datasheet for it. Can't help you with the code - I'm an Atmel weenie :-)

--
* * * * * * * * * * * * * * * * *
Dorsai - Author of Erotic Fiction
http://www.asstr.org/~Dorsai
* * * * * * * * * * * * * * * * *
Yoda of Borg am I. Futile is Resistance...Assimilate you, I will...
Reply to
Dorsai

Hi Scott, I may have come a little late on this thread but I did this LED thing just recently. I used an 8-pin PIC (12C675) driving an array of 64 LEDs using 74HC164 serial to parallel shift registers. These are more common and cheaper (real cheap) than other types but do not have any kind of output enable or buffer register so I simply used a P-channel FET to drive the anodes of all the LEDs. This allows me to blank the LEDs when I am clocking plus I can also execute PWM in s/w to control the brightness.

Sure, you require a resistor per LED but when you do it with SMD then it really is quite simple. There is no problem with chaining this array out to any practical length.

Note that there is a limit to the total amount of current that you can pass through the substrate of any IC. For most 74HC devices this is around 50ma total which means you should limit LED current to about

6ma/LED. As the LEDs I was using were around 200mcd I didn't have a problem with that.

I can give you schematics and source code if you like.

-- Peter Jakacki

Scott Ho> I am new to electronics, but a programmer by trade. I am trying to

Reply to
Peter Jakacki

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.