Saturday, January 13, 2007

More hardware fun!

I'm about to start making a large LED scrolling message board for work so we can dump build messages/alerts to it. We look at how much they would cost to buy, but for the size we were looking at the prices ran into the thousands! Which is just a bit silly.... We also need to be able to get a our own programs to be able to talk to it, which isn't what you get from the cheaper models. So I thought I could probably manage to build one cheaper; quite a bit cheaper! I got a stack of the LED matrix panels in so I started playing with them and figuring out how they work. This is actually my second attempt, the first worked fine but was a little dull. So now I have a 5V pull-up line to help keep the brightness up. Unfortunatly, they will never be as bright as a 5x8 array of LED's could be since you have to scan these (put on 1 row or column at a time) due to the pin/matrix effet. Still, they use a fraction of the power so thats always good and if I place a sheet or transparent red plastic (or red anything) over it, it makes it looks even brighter so it should work out fine.

I'm using a PIC16F628A to drive it, but Im running low on lines as it takes 13 to drive it directly, and I still have to get some COMM's in there to be able to talk to it. I originally used a 3 to 8 demultiplexor when I used to scan 5 pixels of 8 rows (scanning downwards), but I swapped that to scan 8 vertical pixels of 5 colums. This has helped to keep it a little brighter as the LED's aren't off for as long, but its really screwed using the 74LS138 as it outputs inverted lines and I can't use that without an invertor chip...3 chips to do a 1 chip job...Oh well, I'll see how I get on, I might manage - I still have 2 lines left, although I've had trouble with one of them before.

Oh...and on the Plus/4 LCD screen front, I also figured I could ditch all the logic chips I had and use a PIC instead...after all, its just a set of control lines going in and a 0 or 1 being set on an out going line if the condition are met...a PIC could do that in its sleep! That would get the +4 LCD down to 2 chips...I could replace the buffer chip with another PIC and that would let me return data easily, AND have even MORE actual RAM there by using the PIC's memory.... handy little thing PIC's... I'm also amazed at how people doing hardware have so many unexpected options, EPROMS or PICs being used as logic decoders... or even the 74LS138 (3 to 8 line demultiplexor) which can also be used a logic decoder... As long as you remember its lines in->lines out...then you have a whole HEAP of things you can do.

4 comments:

Anonymous said...

You could use bunch of serial shift registers (e.g. 74164) for column selection. That way you need only two pins to control as many columns as you want, just add another '164 to the chain :)

--
TNT

Mike said...

Ooooo yeah... could do. Im trying to keep the chip count down for power reasons, I want to run as many segments as I can from each PSU so each chip I add will cost.

But if I can't manage, then yeah... these will be great, cheers.

Its funny, Electronics reminds me of learning "C", its not the langauge thats the problem, its knowing all the functions in the C runtime; and electronics isn't the issue, its knowing all the chips you can get to do certain jobs.

Ta!

Anonymous said...

Regardless what chip you use shift register would be the most sensible solution IMHO. At the contoller end it takes only ten pins for driving LEDs (2 for column, 8 for row) which leaves couple of free pins even after RS232 to update the text. Bit-banging interface for C16 parallel port? :)

If you decide to use TTL chips instead of PIC as shift registers, check out 74HC594/595 for 0.30-0.40 euros each.

--
TNT

Mike said...

The PIC isn't just for shifting it has to "scan" the LED matrix as you can't just "set" them all at once.

The PIC's will not only drive the LED MATRIX but also comunicate with a master controller which speaks to a PC; its not to be connected to the P4, just a PC.

Since I need a PIC anyway, I'd rather try and to keep it as the only chip "if" possible... if not.. .they I'll use at least one to help drive the LED MATRIX