That would probably be a good fit. I assume you would be using an automatic pick-and-place service with your board assembly house, so a 100-pin gull-wing IC shouldn't be a problem. Are you still planning to use a single-sided PCB?
Now I have all of 2 hours knowledge on these things but would this not allow me to have 64 outputs for LED driving and 16 inputs for a multiplexed trigger switch array?
Now that I know water is involved, I'm not sure how best to read/scan the trigger array. Do you have a drawing of the physical arrangement of the water detector contacts? Reading them using multiplexing could possibly cause problems with interference between adjacent water detector contact pairs. Also, multiplexing switches normally requires a diode for each switch, which adds to the cost.
I think some kind of multiplexing will be needed for the water detector contacts, because there are so many of them, but be aware that the characteristics of the contacts may affect how the multiplexing should be implemented.
What kind of water is to be used in the water pistols? Standard tap water, I guess? Have you measured the current flow through wet contacts with a few volts across them?
In theory could I not run 400 LEDs on a 20x20 multiplexed output array and a 20x20 multiplexed trigger input array? I am guessing this wouldn't work however as the duty cycle for each LED would be so short that they would not be able to run very bright. I will need to check manufacturers specs to figure out the size of multiplexed array I could run.
Right, good call.
If the number of multiplexed LEDs is restricted to say a 7x7 array, is it possible to run multiple arrays from one chip?
Kind of. Let's use an example of an 8x8 LED grid. That is, 8 columns, side by side, with each column consisting of 8 LEDs, one above the other. Let's assume that the columns are enabled one at a time. So the multiplexing operation consists of enabling the leftmost column and outputting the control pattern for the leftmost column of LEDs, waiting 1/8th of the total multiplex cycle, disabling the leftmost column and enabling the next column over with the appropriate LED control information for that column, and so on. After the rightmost column has been displayed, the firmware cycles back to the leftmost column.
The width, that is, the number of columns, determines the share of time for each multiplexed object (in this case, a column). So each column will see 1/8th of the total time. This factor determines how much more current you need to hit the LEDs with, to get the required brightness.
But the _height_ of the columns doesn't affect the current needed. It just affects the number of drivers you need for the LED enable pattern. You could increase the column height to, say, 16 LEDs, but still multiplex them as 8 columns, and each column would still get 1/8th of the multiplex cycle time.
This is pretty much what you mean when you suggest that one micro could drive more than one array. You could say that it's driving two arrays, which are both multiplexed together in the same way, at the same time, and probably using the same column-enable drivers, for simplicity.
So you need to work out the number of columns you want to multiplex by, then you can decide on the column height separately without affecting the width.
You don't have to multiplex them from left to right; you could work from top to bottom. Also, you don't have to expand the width of the multiplexed item linearly; you could, for example, use 16 columns side-by-side, and enable columns 1 and 9, then 2 and 10, and so on.
It is also possible for firmware to adjust the multiplexing behaviour to deal with situations where some columns LEDs need to be bright, if not all columns need to be. For example, any colum that has no LEDs illuminated at all doesn't need to be driven at all, so the remaining columns could be allowed a larger share of the multiplex cycle time. But of course it's possible that you'd need all columns lit, in some situations. In that case, firmware would be forced to allocate 1/8th time to each column, and the display would be dimmer than you would like. With the array being part of a larger image, this might look odd, unless there was some kind of global brightness signal or at least some way of communicating with the four or eight modules closely connected; this would rapidly become complicated!
I know nothing about these chips, is the one I have picked suitable? can you suggest what I might look for when choosing? I would guess I should be thinking about how these chips would interface with the higher level control if I decided to go this way (I am guessing this would be a PC).
Right. The device has an SCI, or serial communication interface. This can be used to transfer data in both directions from a serial port. You would need either multi-drop communication to all panels, or some kind of inter-panel communication, to allow individual panels to be addressed. It also has a CAN interface, which is multi-drop (but probably not as many devices as you would need). I think you can get CAN interfaces for PCs.
This project is rapidly becoming pretty complex for someone with no microcontroller experience. Can you hire an experienced technical person to work with? I have the feeling that only a hands-on person will be able to do a proper job of this project...
Kris, I have thought about heat dissipation but it shouldn't be a problem with all the PSUs mounted in a case with a big fan. The power supply I was looking at has a little fan in the case anyway. Also the max power wont be an issue as I intend to wire the whole rig to its own breaker directly from the distribution board/fuse box.
OK, sounds good. Have you calculated the total power consumption? Assume 75% efficiency for the power supplies, and significant power loss in each panel (75% maximum efficiency, and more likely around 50%, I would suggest).
I will post some circuit diagrams tomorrow for you guys to pick to pieces
and give as much detail as I can regarding the project.
I'm looking forward to it.
All your help is very much appreciated.
David.
Thanks
And thanks for giving us an interesting project to think about