How it works is there is a predetermined time limit (which u can change in the code) and the opposing team has that much time to find the code and the bomb and disarm it. How they find the code is up to you... capture a person? sure! Find it hidden somewhere? sure! or whatever! When the bomb is turned on it asks for a code and you can enter in any four number combo and that is the disarm code for that round. If the person puts in the wrong code it will add 1min 30sec to the time when the time runs out? BOOM! well thats what it says on the screen and it makes a funky noise = ] This is version 1.0 hopefully in the future we will add wires to unplug to disarm it and some other neat things but for now this is perfect and works well for what we want! I hope you enjoy the instructable!
Step 1: Supplies
1 Arduino (We use duemilanove and you can buy these everywhere online)
1 Arduino Proto-Shield (or if you want just a breadboard or protoboard)
1 LCD Screen 16x2 ( we used this one from sparkfun! http://www.sparkfun.com/products/255)
1 Numeric KeyPad ( we used another one from sparkfun! http://www.sparkfun.com/products/8653)
1 Potentiometer ( we used a 50k i believe! bought from raidoshack awhile ago)
1 8Ohm Speaker ( tore one out of an old toy, but you can find them EVERYWHERE!)
1 Green LED
1 Red LED
4 1k Ohm resistors
Other Materials:
Some sort of case ( we found ours at a thrift store but i think they sell them at walmart)
a chunk of wood ( this is to bring the arduino off of the bottom of the case and up towards the top)
Screws (to attach the arduino to the chunk of wood)
Heat shrink tubing
Tools you'll need:
Soldering Iron
Solder
Wire (we used alot of old computer cable so it would stay kinda together)
Wire Cutters
Hot Glue Gun
Hot Glue
Saw
Dremel
Screw driver
Step 2: Cutting up your box
We cut the square out for the lcd screen and then drilled the holes for the LEDS, then cut out the keypad and we just eyed everything as far as positioning. We did all our cutting with a dremel and razor blade.
We then cut the slots in the back: First we cut a hole for the potentiometer to fit through, then we cut another hole in the back just for the power adapter hole and then also a hole for the USB cable just for programming if we needed to we wouldn't have to take the arduino out.
all of these holes and such are your call for style so just do a layout of everything until you get it how you like it then make the cuts.
Step 3: Placing the arduino
Step 4: Wiring and such
Heres a quick outline to go along with the schematic
Arduino pins :
DPin 0 = Nothing
DPin 1 = Nothing
DPin 2 = Pin 8 on keypad
DPin 3 = Red LED
DPin 4 = Green LED
DPin 5 = Nothing
DPin 6 = Nothing
DPin 7 = Pin 4 LCD
DPin 8 = Pin 6 LCD
DPin 9 = Speaker +
DPin 10 = Pin 11 LCD
DPin 11 = Pin 12 LCD
DPin 12 = Pin 13 LCD
DPin 13 = Pin 14 LCD
APin 0 = Pin 2 Keypad
APin 1 = Resistor to Pin 3 Keypad
APin 2 = Pin 4 Keypad
APin 3 = Resistor to Pin 5 Keypad
APin 4 = Resistor to Pin 6 Keypad
APin 5 = Resistor to Pin 7 Keypad
LCD Screen Pins:
Heres the missing pins on the LCD
LCD pin1 = Potentiometer 5v
LCD pin 2 = Potentiometer GND
LCD pin 3 = Potentiometer Middle
LCD pin 5 = GND
LCD pin 15 = 5v
LCD pin 16 = GND
That should be all of them .... on the spark fun website if you follow the links on the supplies page there are some really great tutorials that explain how to hook up the pad and the lcd.
Step 5: Uploading the code
/*Airsoft Bomb
Version 1.1Creators:
Chase Cooley&&&&&&&&&&&&
Joey Meyer*/
#include <Keypad.h>#include <LiquidCrystal.h>
#include <Tone.h>
#define pound 14
Tone tone1;int Scount = 0; // count seconds
int Mcount = 0; // count minutesint Hcount =0; // count hours
int Dcount = 0; // count daysint val = 0;
long secMillis = 0; // store last time for second addlong interval = 1000; // interval for seconds
char password[4];int currentLength = 0;
int i = 0;char entered[4];
int ledPin = 3; //red lightint ledPin2 = 4; //green light
LiquidCrystal lcd(7,8,10,11,12,13);const byte ROWS = 4; //four rows
const byte COLS = 3; //three columnschar keys[ROWS][COLS] = {
{'1','2','3'},{'4','5','6'},
{'7','8','9'},{'*','0','#'}
};
byte rowPins[ROWS] = {18, 2, 14, 16}; //connect to the row pinouts of the keypadbyte colPins[COLS] = {17, 19, 15}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as outputpinMode(ledPin2, OUTPUT); // sets the digital pin as output
tone1.begin(9);lcd.begin(16, 2);
Serial.begin(9600);lcd.clear();
lcd.setCursor(0,0);lcd.print("Enter Code: ");
while (currentLength < 4){
lcd.setCursor(currentLength + 6, 1);lcd.cursor();
char key = keypad.getKey();key == NO_KEY;
if (key != NO_KEY){
lcd.print(key);password[currentLength] = key;
currentLength++;delay(200);
}}
if (currentLength == 4){
lcd.noCursor();lcd.clear();
lcd.home();lcd.print("You've Entered: ");
lcd.setCursor(6,1);lcd.print(password[0]);
lcd.print(password[1]);lcd.print(password[2]);
lcd.print(password[3]);delay(3000);
lcd.clear();currentLength = 0;
}}
void loop(){
char key2 = keypad.getKey(); // get the keylcd.setCursor(0,0);
timer();if (key2 != NO_KEY)
{while (key2 == NO_KEY)
{key2 = keypad.getKey();
}if (key2 != NO_KEY)
{lcd.clear();
lcd.setCursor(0,0);lcd.print("Enter Code: ");
while (currentLength < 4){
lcd.setCursor(currentLength + 6, 1);lcd.cursor();
char key2 = keypad.getKey();if (key2 != NO_KEY)
{lcd.print(key2);
entered[currentLength] = key2;currentLength++;
delay(200);lcd.noCursor();
lcd.setCursor(currentLength + 5, 1);lcd.print("*");
lcd.setCursor(currentLength + 6, 1);lcd.cursor();
}}
if (currentLength == 4){
if (entered[0] == password[0] && entered[1] == password[1] && entered[2] == password[2] && entered[3] == password[3]){
lcd.noCursor();lcd.clear();
lcd.home();lcd.print(" Defused ");
currentLength = 0;delay(2500);
lcd.setCursor(0,1);lcd.print("Reset the Bomb");
}else
{lcd.noCursor();
lcd.clear();lcd.home();
lcd.print(" Wrong ");lcd.setCursor(0,1);
lcd.print(" Add - 1:30 ");if (Mcount < 14)
{Mcount = Mcount + 1;
}if (Scount < 59)
{Scount = Scount + 30;
}delay(1500);
currentLength = 0;}
}}
}}
void timer(){
if ( Mcount >= 15 ){
while ( Mcount >= 15){
lcd.noCursor();lcd.clear();
lcd.home();lcd.print(" !BoOm! ");
tone1.play(NOTE_A2, 200);digitalWrite(ledPin, HIGH); // sets the LED on
tone1.play(NOTE_A2, 200);delay(10); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED offtone1.play(NOTE_A2, 200);
delay(10); // waits for a seconddigitalWrite(ledPin2, HIGH); // sets the LED on
tone1.play(NOTE_A2, 200);delay(10); // waits for a second
digitalWrite(ledPin2, LOW); // sets the LED offtone1.play(NOTE_A2, 200);
delay(10); // waits for a secondchar key4 = keypad.getKey();
if (key4 != NO_KEY){
while (key4 == NO_KEY){
key4 = keypad.getKey();}
if (key4 = '#'){
lcd.clear();lcd.print("Reset the Bomb");
}}
}if ( Mcount == 60) // if Mcount is 60 do this operation
{//delay (32); // good place to fine tune timing
Mcount = 0; // reset McountHcount ++;
}if (Hcount> 23)
{Dcount++;
Hcount = 0; // have to reset Hcount to "0" after 24hrs}
lcd.setCursor (0,1); // sets cursor to 2nd linelcd.print ("Timer: ");
lcd.print (Dcount);lcd.print (":");
lcd.print (Hcount);lcd.print (":");
lcd.print (Mcount);lcd.print (":");
lcd.print (Scount);
if (Scount >59) // if 60 do this operation{
Mcount ++; // add 1 to McountScount = 0; // reset Scount
//delay (58); // changes ms per min}
if (Scount < 60) // do this oper. 59 times{
unsigned long currentMillis = millis();//delay (988); // changing by one = 60 ms a min
if(currentMillis - secMillis > interval){
tone1.play(NOTE_G5, 200);secMillis = currentMillis;
Scount ++; // add 1 to ScountdigitalWrite(ledPin2, HIGH); // sets the LED on
delay(10); // waits for a seconddigitalWrite(ledPin2, LOW); // sets the LED off
delay(10); // waits for a second}
}}
Step 6: Testing!
If you like this plz vote for me! This is my first contest entry thanks for looking at my instructable!












































Visit Our Store »
Go Pro Today »




the code does not make me see the time, why?
Can you give me a hand? Thank you!
just want the red led to signify wrong code and green to signify the correct code.
on the arduino.cc website there is a good section on controlling 7 segments
First of all I've got to say that I've never used Arduino, but I'm very interested in this aprticular project, because I'm an airsoft player and I've been looking for a timed bomb for a long time.
Well, then is time for my question: Could it be posible to use this to activate a relay? (Which in turn, activates a piezo siren)
If it is possible, could someone help me with the code? I'm totally green in programming.
Thanks and sorry for my poor English.
Thanks for your interest in the project. There is no reason i can see that you couldn't use a relay with this project. That said I dont believe it will be a problem of coding, but rather a Hardware problem. Here are a few sites and other instructables that might be helpful.
http://www.instructables.com/id/Connecting-a-12V-Relay-to-Arduino/
http://www.instructables.com/id/Arduino-Controlled-Relay-Box/
http://www.sparkfun.com/tutorials/119
let me know if you have more questions.
AFAIK, I should get a digital pin to high level when i want the relay to activate, this is easy.
The problem comes when we get to the programming part... I don't know what should I change in the code to activate the relay instead of emitting the tone.
Oh, and I don't understand something... What does the potentiotemeter do?
Lot of thanks!
And I was kinda sleepy that day, the use of of the pot was clear... xDD
I could tell you when I finish it, if you want ;)
And thanks again!
i need HELP please :(
the code have more errors:
sketch_jan12a.cpp:6:46: error: Keypad.h: No such file or directory
sketch_jan12a.cpp:7:18: error: Tone.h: No such file or directory
sketch_jan12a:8: error: 'Tone' does not name a type
sketch_jan12a:16: error: 'LiquidCrystal' does not name a type
sketch_jan12a:18: error: expected unqualified-id before '{' token
sketch_jan12a:18: error: expected unqualified-id before ',' token
sketch_jan12a:18: error: expected unqualified-id before '{' token
sketch_jan12a:18: error: expected unqualified-id before ',' token
sketch_jan12a:19: error: expected unqualified-id before '{' token
sketch_jan12a:19: error: expected unqualified-id before ',' token
sketch_jan12a:19: error: expected unqualified-id before '{' token
sketch_jan12a:20: error: expected declaration before '}' token
can you help me please?
you can get them from www.arduino.cc
thank you for the help.
I have download the keypad and tone file from www.arduino.cc
Now i have only this errors.
sketch_jan14a.pde:-1: error: expected unqualified-id before '{' token
sketch_jan14a.pde:-1: error: expected unqualified-id before ',' token
sketch_jan14a.pde:-1: error: expected unqualified-id before '{' token
sketch_jan14a.pde:-1: error: expected unqualified-id before ',' token
sketch_jan14a.pde:-1: error: expected unqualified-id before '{' token
sketch_jan14a.pde:-1: error: expected unqualified-id before ',' token
sketch_jan14a.pde:-1: error: expected unqualified-id before '{' token
sketch_jan14a.pde:-1: error: expected declaration before '}' token
Can you help me please?
but i have the same problem like Soul1974
sketch_sep25a.cpp:6:20: error: Keypad.h: No such file or directory
sketch_sep25a:19: error: expected unqualified-id before '{' token
sketch_sep25a:19: error: expected unqualified-id before ',' token
sketch_sep25a:19: error: expected unqualified-id before '{' token
sketch_sep25a:19: error: expected unqualified-id before ',' token
sketch_sep25a:20: error: expected unqualified-id before '{' token
sketch_sep25a:20: error: expected unqualified-id before ',' token
sketch_sep25a:20: error: expected unqualified-id before '{' token
sketch_sep25a:21: error: expected declaration before '}' token
Please help me
The code and the preceding discussion from members of the Arduino community collectively scratching their heads, is located here:
http://arduino.cc/forum/index.php/topic,64119.msg467415.html#msg467415
Hope it helps!
You have helped I have post numerous requests to the creators with no luck.
If it was not for your help I would have stayed clear of Arduino projects.
Thanks again I will make sure you get taged in the project.
sketch_jun06a.cpp:6:46: error: Keypad.h: No such file or directory
sketch_jun06a.cpp:7:19: error: Tone.h: No such file or directory
sketch_jun06a:8: error: 'Tone' does not name a type
sketch_jun06a:16: error: 'LiquidCrystal' does not name a type
sketch_jun06a:18: error: expected unqualified-id before '{' token
sketch_jun06a:18: error: expected unqualified-id before ',' token
sketch_jun06a:18: error: expected unqualified-id before '{' token
sketch_jun06a:18: error: expected unqualified-id before ',' token
sketch_jun06a:19: error: expected unqualified-id before '{' token
sketch_jun06a:19: error: expected unqualified-id before ',' token
sketch_jun06a:19: error: expected unqualified-id before '{' token
sketch_jun06a:20: error: expected declaration before '}' token
Please help!
I downloaded all the libraries but it seems the code is corupt, could you please respond to my PM and email me the code. I realywant to get this project to work I have posted on numerous forums for help and I am getting alot from FalconFour but I am still not getting your results please help.
also more information at
www.arduino.cc
its basically a tiny computer
Nice set up.