Hi,
I'll start by saying that I'm a software engineer by profession. I can fumble my way around digital and electronic circuitry, but I'm no expert.
I'm building an Arduino based project to support my hobby (and part-time job) setting off fireworks. It is a wireless firing system consisting of a controller and multiple field modules. The controller is an Arduino Mega2560 with an XBee radio, a TFT touchscreen and an RTC for accuracy. The field modules are Arduino Unos each with an XBee radio, a LCD screen and an I/O multiplexer providing 48 pins, each of which can be digital (5V) output or analog input (0-5V) through a 10-bit DAC.
I have had no real problems putting all this together, and I think the software now rivals that on commercial systems.
My problem is with the connectivity between the pins on the firing module's multiplexer (a Mayhew Labs' Mux Shield II featuring 74HC595 shift registers coupled with a 74HC4067 analog multiplexer) and the ignitors that are used ignite the fireworks.
If the job of the field module were purely to detonate the ignitor, I would run a wire from each of the 24 digital output pins in the multiplexer to the base of a transistor, whose collector attached to +18V via the ignitor and whose emitter runs to ground. Raising the output pin to a high (+5V) state would, with the right transistor, cause the ignitor to fire, igniting the firework and KA-BOOM!
However, the field module has another use. It must also assess the connectivity/integrity of its ignitors. Thinking of how I might do this, I could take my +18V supply through a resistor to drop the current to well below the 0.4A that may ignite it, then through the ignitor, finally to ground. I would run a wire from the +ve side of the ignitor off to the analog input pin from which I would measure the voltage drop across the ignitor. The ignitor has only a 2 ohm resistance, but I would expect to recognise that with a 0.005V granularity.
My field modules support 24 'cues' each. A cue is 'where you plug your ignitor in'. Each ignitor is connected across a pair of terminals, from which wires then extend back into the field module. There is no physical switching possible, or even desirable, between continuity and fire modes. When the ignitors are attached, each circuit needs to work based on which pins are being used. The output pin will be held low until it attempts to fire, at which point the continuity circuit (analog input pin) will not be looked at, but will still be connected.
I have a choice of using only 24 of the multiplexer's 48 pins, and using software to switch them between output and input, or of using the 48 pins in 24 pairs.
If using only 24 pins, then each one must be permanently wired to both the fire circuit (transistor base) and the continuity circuit (+ve side of the ignitor).
If I use 48 pins, then only one of each pair is attached to the transistor, while the other is attached to the +ve side of the ignitor. This appears to isolate the circuits at the multiplexer, but they still connect with each other at the ignitor. Maybe any cross-connections can be eliminated with appropriate diodes?
Unfortunately, my rudimentary knowledge does not allow me to judge which (if either) of these would work, or if one is better than the other. I see circuit diagrams including additional diodes, resistors and capacitors around transistors, whose impact I don't really understand. Basically, now I've got to the bit where I need to understand the electronics, and I don't.
I have a number of areas where I would appreciate some advice.
- What is the best wiring option for connecting the 48 (or just 24) pins on the multiplexer to the 24 pairs of wires that go off to the ignitors. Can you suggest a wiring diagram I could try to implement? This is a mini (possibly not that mini) design project for anyone keen enough.
- The ignitor needs 0.4A to fire it, and it happens almost instantly, like a fuse. With an 18V supply and a 2 ohm resistance, if I had just 1 ignitor, the transistor would be passing 9A for a fraction of a second, while if I had 8 ignitors connected in series, it would pass only 1A. Sometimes, you might get 2 in parallel, so 18A!. I have 24 of these to build in each module. Is it possible to get IC housed transistor arrays that can shift this? Would I be better off considering an alternative approach for the firing circuit, and if so, what would be better?
- The 18V supply (I'm expecting to use a LiPo or similar) is chosen because if the show requires that all 24 cues are fired at once, I need enough oomph in the supply still to deliver 0.4A to each ignitor. With 2 ignitors in serial on each of the 24 cues, that would lead to a theoretical draw on 108A. However, the internal resistance of the cell, plus that of the circuitry itself would reduce the maximum current that could be supplied. In order to push 0.4A through each ignitor in this situation, is 18V enough? Should 24V be used?
- Power surges. OK, I'm pretty sure that some of the capacitors I have seen in wiring systems are there to prevent the application of power to the system from causing things such as transistors to be turned on when they should remain turned off. I don't really understand this use or whether and if so where I would need it. However, it is essential that turning on a firing module does not deliver anything above 0.4A to any of the ignitors that may be attached.
All input will be much appreciated. I will happily supply any further details to anyone who feels they can take up the challenge.