Code for Fireworks Display System


I am looking for some help and or advice on writing a program/code for an arduino. Basically it will be used as the " brain" of a Stepper to step through cues on a Firework display firing system.

Basically I need it to recieve a 12v dc pulse from our existing system when I press fire on for example cue 1, the new box with arduino should then fire cue 1 on the box it will be in, then on each successive pulse from my system the arduino will step though its output pins in essence turning my cue 1 on my existing system into say 10 on a new field module that has the arduino housed inside.

To re-cap the function would be on each pulse the arduino recieves on a set pin it steps through the rest of the pins in sequence, I would need the duration of the output pin to be around half a second to fire an ignitor and then off when its turn to fire comes. I will be using MOFSET Transisters to increase the output to 12 or 24 volts depending on my end product as the arduino only outputs 5v max.

I must say at this point that this project is not going, nor intended for production to sell, purely an in house system to be used by my own company. There is a product on the market however it does far more than I need and it too has a funtion that I am trying to re-create.

So guys I have an Arduino Uno coming and some resisters, bread board proto boards etc.... And Have been trying to learn the code/language. I am far from " electronically minded" more of a hands on person so any help will be fantastic. I have watched numerous videos on youtube and I think I have the very VERY basics, also from what I can understand I need to use Interputs to get the funtion I want?

Your thoughts will be appreciated,


Roughly how many distinct outputs do you envisage having? Do you expect to provide a separate MOSFET-or-whatever driver for each circuit?

My Idea is to have a seperate N type MOFSET for each cue with all the Grounds together on the 12or 24v side of things, so all the ground pins connected and on the drain side of the fet would be a break in the circuit I.E speaker terminals and then the 12/24V positive side of that circuit.

So when the gate recieves the 5v from the Arduino it closes and lets the 12/24v flow through the circuit and if an igniter is connected to the terminal then it will blow giving me 1 cue.

I am not sure how many cues I really need, the whole idea is just to be able to expand my existing number of cues when needed, If I can get over 10 from an UNO then I will be happy, the more I can get the better allthough 20 would be the maximum I will need.

To throw another spanner in the works I will also want the program to know when the last cue has fired and then keep firing that pin until the system is re-set, this is to daisy chain the boxes together like in the video.


It sounds feasible, although an Arduino per ten (or so) outputs makes me think it's not going to scale very economically.

People use Arduinos to drive very large numbers of LEDs using shift registers and some clever wiring to allow a large number of outputs to be controlled from a small number of pins, and perhaps you should look in the 'LEDs and multiplexing' section of the forum to see what is possible. Quite likely, you can achieve what you want with a single Arduino.

The Arduino Uno has 20 I/O pins, of which you need 1 as the input to receive the pulse. Also, I suggest you avoid using the TxData and RxData pins, because data that appears on them when the bootloader is running could trigger the attached mosfets. So you can control up to 17 firing circuits from the remaining pins of an Arduino Uno, without any external hardware apart from the mosfets and the associated resistors (2 per mosfet: 220 ohm from the output pin to mosfet gate, and 10K from output pin to ground). If you need more outputs than that, instead of bothering with I/O expanders or shift registers, it is simpler to use an Arduino Mega (unless you want even more outputs than a Mega has).