Actually you said you got it from the "inter net" (?) and that you "fixed a lot of it" (??), so who knows what was "fixed" (but it sure wasn't the formatting!)...
I should be asleep right now but this topic just screamed out for someone to help it along with some formatting. Nothing irks me more than poorly formatted code. A quick trip through Eclipse's one and only useful function - "Format" - and we get some readable code...
/*Airsoft TIMER
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 minutes
int Hcount = 0; // count hours
int Dcount = 0; // count daysint val = 0;
long secMillis = 0; // store last time for second
long interval = 1000; // interval for seconds
char password[4];
int currentLength = 0;
int i = 0;
char entered[4];
int ledPin = 5; //red light
int ledPin2 = 6; //green light
LiquidCrystal lcd(7, 8, 10, 11, 12, 13);
//Keypad
const byte ROWS = 3; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = { { '1', '2', '3', '4' }, { '5', '6', '7', '8' }, {
'*', '9', '0', '#' } };
byte rowPins[ROWS] = { 2, 14, 15 }; //connect to the row pinouts of the keypad {18, 2, 14, 16}
byte colPins[COLS] = { 16, 17, 18, 19 }; //connect to the column pinouts of the keypad {17, 19, 15}
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
//LCD setup
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin as output
pinMode(ledPin2, OUTPUT); // sets the digital pin as output
tone1.begin(9);//pin for speaker
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(2500);
lcd.clear();
currentLength = 0;
}
}
void loop() {
char key2 = keypad.getKey(); // get the key
lcd.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);//sets the delay for defuse screen
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 - 0.30"); //LCD Display time added
if (Mcount < 5) {
Mcount = Mcount + 0;
}
if (Scount < 59) {
Scount = Scount + 30;
}
delay(1500);
currentLength = 0;
}
}
}
}
}
void timer() {
if (Mcount >= 5)
while (Mcount >= 5) {
lcd.noCursor();
lcd.clear();
lcd.home();
lcd.print(" !BoOo0o0o0om! ");
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 off
tone1.play(NOTE_A2, 200);
delay(10); // waits for a second
digitalWrite(ledPin2, HIGH); // sets the LED on
tone1.play(NOTE_A2, 200);
delay(10); // waits for a second
digitalWrite(ledPin2, LOW); // sets the LED off
tone1.play(NOTE_A2, 200);
delay(10); // waits for a second
char 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 Mcount
Hcount++;
}
if (Hcount > 23) {
Dcount++;
Hcount = 0; // have to reset Hcount to "0" after 24hrs
}
lcd.setCursor(0, 1); // sets cursor to 2nd line
lcd.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 Mcount
Scount = 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 Scount
digitalWrite(ledPin2, HIGH); // sets the LED on
delay(10); // waits for a second
digitalWrite(ledPin2, LOW); // sets the LED off
delay(10); // waits for a second
}
}
}
Have at, guys! There's a lot of work to do... especially "delay(10); // waits for a second" (you mean, waits 1/10th a second? haha).