The schematic:
See it in YouTube:
Having fun:
Masking tape to do the yellow spray painting…
Some effort was needed to find the actual parts.( RadioShack, OfficeMax, Sparkfun, HomeDepot…)
Was difficult to organize all the parts, a bigger enclosure is recommended.
Finally a deeper box was found, (same cover dimensions).
Here is the final code used in the physical implementation:
-NewSoftSerial library was used to avoid random commands to the display during program downloading.
-The COM-09766 is connected to the pin 2 (software TX data).
/*RocketLauncher ROCKET LAUNCHER CONTROLLER. Arduining.com 05 Jan 2012 (hardware implemented version) -A count-down TIMER is implemented. -The potentiometer is used to set the TIMER. -Two Push-Buttons: "ARM" to set the counter and "GO" to start the counter. -Display: Sparkfun's Serial 4 Digit 7-Segment Display . COM-09766 (RED). -NewSoftSerial library is used to avoid random commands to the display during program downloading. */ #define FuseTIME 1500 //Fuse current duration in milliseconds. #include <NewSoftSerial.h> //Usinf the NewSoftSerial library. #define Fuss 7 //Pin connected to the Fuse relay. #define GoButt 6 //Pin connected to the GO button. #define ArmButt 5 //Pin connected to the ARM button. #define BuzzPin 4 //Connected to the Speaker. #define TXdata 3 //Conneted to Rx of the Display. #define RXdata 2 //not used in this project #define SetPot 0 //Analog Pin connected to the Pot. NewSoftSerial mySerialPort(RXdata,TXdata); void setup(){ pinMode(TXdata,OUTPUT); pinMode(RXdata,INPUT); pinMode(Fuss,OUTPUT); pinMode(ArmButt, INPUT); // set "ARM" button pin to input pinMode(GoButt, INPUT); // set "GO" button pin to input digitalWrite(Fuss,LOW); //OPEN the fuse circuit. digitalWrite(ArmButt, HIGH); // turn on pullup resistor digitalWrite(GoButt, HIGH); // turn on pullup resistor mySerialPort.begin(9600); delay(10); //Wait for Serial Display startup. mySerialPort.print("v"); //Reset the display. mySerialPort.print("z"); //Brightness Control. mySerialPort.print(0x40,BYTE); //3/4 Intensity. mySerialPort.print("w"); //Decimal Point Control. mySerialPort.print(0x10,BYTE); //turn on the colon ":". } int DownCntr; // down counter (1/10 Secs.) int Go=0; // Stopped //================================================================ void loop(){ if(!digitalRead(GoButt)||!digitalRead(ArmButt)){ Go=0; //ABORT!!! tone(BuzzPin, 440, 1500); delay(1500); } if(Go==0){ WaitARM(); WaitGO(); } ShowTimer(); if (DownCntr > 50){ if (DownCntr % 10 ==0)tone(BuzzPin, 1000, 50); //Tone every second. } else if (DownCntr % 2 ==0)tone(BuzzPin, 1000, 50); //Tone every 1/5 second. if (DownCntr ==0){ //------------------ ROCKET LAUNCH! -------------------- tone(BuzzPin, 440, FuseTIME); //Launch audible signal digitalWrite(Fuss,HIGH); //CLOSE the fuse circuit delay(FuseTIME); digitalWrite(Fuss,LOW); //OPEN the fuse circuit. //------------------------------------------------------ Go=0; } while (millis()% 100); //Wait until the next 1/10 of second. delay(50); DownCntr--; } //---------------------------------------- void WaitGO(){ ShowTimer(); while(digitalRead(GoButt)); Go=1; delay(20); while(!digitalRead(GoButt)); //Debounce GO button. } //------------------------------------------------------ void ReadTimer(){ DownCntr = map(analogRead(SetPot), 0, 1023, 5, 60); DownCntr*=10; } //------------------------------------------------------ void ShowTimer(){ String seconds = String (DownCntr, DEC); while(seconds.length()<3)seconds= "0" + seconds; //format to 3 numbers. mySerialPort.print(seconds); //Write to Display. mySerialPort.print(" "); //Last digit off. } //------------------------------------------------------ void WaitARM(){ while(digitalRead(ArmButt)==1){ ReadTimer(); mySerialPort.print(" "); //Turn Off Digits. delay(50); ReadTimer(); ShowTimer(); //Show Digits. delay(150); } Go=0; ShowTimer(); tone(BuzzPin, 2000, 150); delay(200); tone(BuzzPin, 2000, 150); delay(200); tone(BuzzPin, 2000, 150); delay(20); while(!digitalRead(ArmButt)); //Debounce ARM button. }
Thank you, it’s great. How have you built your relay?
Also, Why have you got 2 batteries? thanks
The 9V battery is to power the Arduino board (7~12V is recomended to feed the internal 5Volts regulator). The 6 Vols pack (4 x AA) is used to power the relay and to blow the fuse (ignitor). Is possible to power everithing with 7-12 volts. The 9V batt is too small to blow the ignitor.
Can you supply me with a list of all the parts included? I’m teaching my son how to build model rockets, and thought this was a great project.
Thanks a lot. I have built it but my 7-Segment Display. COM-09766 is getting mad, just giving random figures, and can’t adjust it with the potentiometer, any idea?
Thanks
NewSoftSerial library was used to avoid random commands to the display during program downloading. The pin 2 was used as TX data. I’ll be posting the final (hardware) code.
Can I buy one of these from you?
Thank you so much,I am looking forward!
Thanks for the code, I’ve tried it but it says the NewSoftSerialdoes not have a name….any idea?
NewSoftSerial library is available here:
http://arduiniana.org/libraries/newsoftserial/
Note: don’t download this if you have Arduino 1.0 or later. As of 1.0, NewSoftSerial is included in the Arduino core (named SoftwareSerial).
error: overriding ‘virtual size_t Print::write(uint8_t)’ … I am getting this compiling error. Please help
No errors seen using Arduino 1.0.3 and compiling for Uno R3. Perhaps a fresh install of the Arduino IDE and libraries will eliminate the error.
Arduino v1.0.3 reports “BYTE obsolete”. Fix (untested): remove BYTE clause from myserial.print() statements in setup().
For the code to compile without any errors in Arduino V1.0.3:
1. Change all references for NewSoftSerial to SoftwareSerial.
2. Change mySerialPort.print(0x40,BYTE); to mySerialPort.write(0x40);
3. Change mySerialPort.print(0x10,BYTE); to mySerialPort.write(0x10);
Great project. This weekend we had good fun at my son’s cub scout rocket launch. That got us interested and me and my son would like to build this controller. can you please provide part list , the simulation software used and circuit diagram. New to DIY electronics, Arduino but have played around with electronic kits and good at programming. any details would really help.
I had created a list with a spreadsheet. I will see if I can find it. I’ll post a download link (if allowed)
Are you able to email it to me please?
Hi Matt,
Do you happen to have a list of parts for this project and possibly more detailed instructions/insight on the build?
Thanks a lot,
Sterling
beautiful, would like a parts list please
Just built a modified version of this box. Still part of the way through it. It is complete except for the launch circuit. The logic and controls are running beautifully.
For those using the Sparkfun COM-11441 display. Remark out the following line in the WaitARM method. It causes the numbers to jump about the display randomly… removing it solved the problem for me.
mySerialPort.print(” “); //Turn Off Digits.
use four spaces in mySeialPort.print() message. The publishing sofware only shows one space.
hi sir, im very interested and excited to build a rocket launch controller using arduino ..can you give me the list of all components that will be use for making this project thanks 🙂 .. please email me
I think this is a fantastic project and very well made!
Would it be possible to email me the list of parts so I can build one myself please?
Thanks in advance,
Sterling
what software you used to draw your schematic ????
Do you have the parts list available specifically for D2, D3, and the Relay or have I missed it earlier? Thank you.
D2 is the 1N4004 diode, the D3 is a Light Emiting Diode inside the Safety Switch.
The relay can be any 5Volts (coil) capable of driving more than 1Ampere.
You can replace R5, D2, Q1 an the relay with the module in Amazon, look for:
5V 1 One Channel Relay Module Expansion Board For Arduino
Also in DX.com , Ebay, Aliexpress …
Hey ardunaut, do you think you could post a video or tutorial for people who are not good on the electronics side of this project. That would be great, Thanks in advance!
@ardunaut, I love this setup and have been looking trying to find a way to adjust your code to make it where I can do just seconds or minutes and seconds…Do you happen to know what I should do to make this happen? My reasoning for this is because we are using this system for an airsoft simulation and need a longer timer on the system.
Thanks in advance!!!
Help My daughter and I decided to do this for a school project but will not work. the final code is giving multiple errors.
Change both ocurrences of “NewSoftSerial” by “SoftwareSerial”, is the new library name. Change also the instructions using “BYTE”:
mySerialPort.print(0x40, BYTE); change to mySerialPort.write(0x40);
mySerialPort.print(0x10, BYTE); change to mySerialPort.write(0x10);
Also correct the instruction in waitARM() function:
mySerialPort.print(” “); to mySerialPort.print(” “); write a four spaces message to the display. Sometimes the publishing application removes spaces and only one space apears in this response.
How would i go about using minutes and seconds for the countdown?
Thanks
Do you have a parts list?
could some one help with this error
Arduino: 1.5.6-r2 (Windows 7), Board: “Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)”
sketch_jul10d:14: error: ‘SoftwaerSerial’ does not name a type
sketch_jul10d.ino: In function ‘void setup()’:
sketch_jul10d:25: error: ‘mySerialPort’ was not declared in this scope
sketch_jul10d.ino: In function ‘void ShowTimer()’:
sketch_jul10d:87: error: ‘mySerialPort’ was not declared in this scope
sketch_jul10d.ino: In function ‘void WaitARM()’:
sketch_jul10d:95: error: ‘mySerialPort’ was not declared in this scope
sketch_jul10d:111: error: expected `}’ at end of input
This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.
‘SoftwareSerial’ not ‘SoftwaerSerial’
Hi there, My sons and I are getting into model rockets and your launch controller looks like a great project for us to work on. Do you happen to have a full parts list? I have never built something like this before or use arduino. Any help would be appreciated.
Hi Ardunaut, I’m working with No Starch Press on a new Arduino book and would love to use your code as an example if possible. Would you be willing to give permission with an attribute to you and link to your site? Best wishes, Mark
You have my permission, glad to be of help…
What changes to the code need to be made to show it show all 4 digits? 2 digits of seconds and 2 digits of milliseconds
I just built a simple, although very cool rocket launch controller using simple switches, leds and resisters. It was fun and it does look way cooler than anything you can buy in the store. As an “old hack” that’s been programming for over 30 years I’m seriously considering a project like this. I think my 8 year old son would get a serious kick out of it.
Model rocketry is something I loved as a kid and I’m having a blast introducing my son to it. I wrote my first BASIC program at age 13 (so, over 30 plus 13 means I am “older”) and in that computer camp using TRS-80 Model 2’s we wrote a countdown program for the engineering summer camp building rockets. 🙂 My love of programming didn’t change, but rockets were cool too.
Very cool build sir.
In regards to R5…is 2k4 correct or it a 24k resister? I haven’t worked with electrical components.
R5 = 2.4k
My display has the connections +, -, SDA, SCL. Correct me if I’m wrong. The + will go to 5V on the Arduino, – Ground on the Arduino. Where do I connect the SDA and SCL?
This is my first time using a relay. I understand the VCC and Ground. Is the relay Normally Closed or Normally Open?
Thank you
John
Your display has an I2C interface, the one used in this project has a serial interface. You’ll need the Wire Library to use it.
Normally OPEN contacts were used in the relay.
Hi ! how can i use 8-digit seven segment LED display module using MAX7219 ?
Thank you!
could some one help with this error
Arduino: 1.5.6-r2 (Windows 7), Board: “Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)”
C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega C:\Users\APPLEM~1\AppData\Local\Temp\build7914549900261659929.tmp\buzzer.cpp -o C:\Users\APPLEM~1\AppData\Local\Temp\build7914549900261659929.tmp\buzzer.cpp.o
buzzer_1.ino: In function ‘void setup()’:
buzzer_1.ino:18:6: error: redefinition of ‘void setup()’
buzzer.ino:18:6: error: ‘void setup()’ previously defined here
buzzer_1.ino: At global scope:
buzzer_1.ino:32:6: error: redefinition of ‘int DownCntr’
buzzer.ino:32:6: error: ‘int DownCntr’ previously declared here
buzzer_1.ino:33:6: error: redefinition of ‘int Go’
buzzer.ino:33:6: error: ‘int Go’ previously defined here
buzzer_1.ino: In function ‘void loop()’:
buzzer_1.ino:36:6: error: redefinition of ‘void loop()’
buzzer.ino:36:6: error: ‘void loop()’ previously defined here
buzzer_1.ino: In function ‘void WaitGO()’:
buzzer_1.ino:68:6: error: redefinition of ‘void WaitGO()’
buzzer.ino:68:6: error: ‘void WaitGO()’ previously defined here
buzzer_1.ino: In function ‘void ReadTimer()’:
buzzer_1.ino:77:6: error: redefinition of ‘void ReadTimer()’
buzzer.ino:77:6: error: ‘void ReadTimer()’ previously defined here
buzzer_1.ino: In function ‘void ShowTimer()’:
buzzer_1.ino:82:6: error: redefinition of ‘void ShowTimer()’
buzzer.ino:82:6: error: ‘void ShowTimer()’ previously defined here
buzzer_1.ino: In function ‘void WaitARM()’:
buzzer_1.ino:90:6: error: redefinition of ‘void WaitARM()’
buzzer.ino:90:6: error: ‘void WaitARM()’ previously defined here
redefinition of ‘void setup()’
Looks like the code is pasted twice …
Yess sir,
thnz so much.
I want to this tutorial with push button,LCD,manually counter,and key pad or send quntity
Any one know if i can use this display please …4 Digit Red 7 Segment Serial LED Module TMHC74HC595 4-bit Arduino
http://www.ebay.co.uk/itm/121694709448?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Thanks folks
Anyone get a list of parts? I would really like to duplicate this build ina nice Shiny aluminum housing. But I dont know what version of the Arduino controller to get. A parts list would be awesome if possible thanks.
hello … and if you wanted to use a TM1637 display? maybe I don’t need the serial port, but can not handle the single digits … can someone help me? thank you
….parts list ???
….parts list…pa…pa …pa…please….
I know this a couple of months late. But can you put it in a Pelican Case?. Because I was looking at a system where it uses two keys to turn on the launch controller. And a Switch to send power to the igniter. I forgot to mention. That my arduino launch controller is rechargeable.
Also, So on that note. I have another question: I would love to use two 6volt battery packs that are rechargeable.. I would like to reconfirm if you can use a 12volt to 9 volt converter so that the board can handle it?. The third question: Could I recharge it while the barrel plug is plugged into the Board?.
The parts: LCD Screen. two Toggle Switches(One Switch to launch the Rocket), Two keys(On and Off for the power). A joystick to go through the menu. Two 6 volt Battery Packs(Rechargeable).
Also Oh I see!!!. You use the 9 volt to power the Arduino. Then additional batteries are for the power to provide to the igniters.
Mine is completely different: Mine uses two 6 volt battery pack with a 12 volt to 9 volt converter. But can you put it in a Pelican Case? Also I’m think about using two 6volt battery packs that are rechargeable.. I would like to know if you can use a 12volt to 9 volt converter so that the board can handle it and is the converter one way?. When charging two 6 volt battery packs with a cigarette lighter battery charger. Do you have to unplug the power to the board inorder to charge it?.
Because I’ve chatted with some others from Arduino. They told me just use the 9 volt provided. Right now I don’t have the Arduino kit yet. I’m just seeing if its possible if you can build a Arduino Rechargeable Launch Controller. That’s it.
Hi, i want to know if it’s possible to use the minutes and seconds and how to do ? i dont find in the code…
thanks a lot
My four boys and I love shooting off hobby Rockets. We really want something like this but we don’t have any of the technical skills. May we please buy one?
can u list all the components used in this project and connections step by step to complete the model???
Little late on this but I just found this.
I would love to build this.
Could I get a parts list so I can buy all the parts I need then build it?
Thank you for sharing this.