Stap 5: Uploaden van de code
/ * Airsoft bom
Versie 1.1Creators:
Jagen Cooley & & & & & & & & & & & &
Joey Meyer * /
#include < Keypad.h > #include < LiquidCrystal.h >
#include < Tone.h >
#define pond 14
Toon tone1; int Scount = 0; Graaf seconds
int Mcount = 0; rekenen minutesint Hcount = 0; uren tellen
int Dcount = 0; rekenen daysint val = 0;
lange secMillis = 0; opslaan van laatste keer voor tweede addlong interval = 1000; interval voor seconds
char wachtwoord [4]; int currentLength = 0;
int i = 0; char ingevoerd [4];
int ledPin = 3; rode lightint ledPin2 = 4; groen licht
LiquidCrystal lcd (7,8,10,11,12,13); const byte rijen = 4; vier rijen
Const byte COLS = 3; drie columnschar toetsen [ROWS] [COLS] = {}
{'1', '2', '3'}, {'4', '5',' 6'},
{'7','8','9'},{'*','0','#'}
};
byte rowPins [ROWS] = {18, 2, 14, 16}; verbinding maken met de rij pinouts voor de keypadbyte colPins [COLS] = {17, 19, 15}; verbinding maken met de kolom pinouts van het klavier
Toetsenbord toetsenbord toetsenbord = (makeKeymap(keys), rowPins, colPins, rijen, COLS);
VOID Setup {}
pinMode (ledPin, OUTPUT); Hiermee stelt u de digitale pen als outputpinMode (ledPin2, OUTPUT); Hiermee stelt u de digitale pen als uitvoer
tone1.begin (9); lcd.begin (16, 2);
Serial.begin(9600);LCD.Clear();
lcd.setCursor (0,0); lcd.print ("Enter Code:");
terwijl (currentLength < 4) {}
lcd.setCursor (currentLength + 6, 1);lcd.cursor();
char sleutel = keypad.getKey (); toets == NO_KEY;
Als (sleutel! = NO_KEY) {}
LCD.Print (sleutel); wachtwoord [currentLength] = sleutel;
currentLength++;delay(200);
}}
Als (currentLength == 4) {}
lcd.noCursor();lcd.clear();
LCD.Home (); lcd.print ("u hebt ingevoerd:");
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(); krijgen van de keylcd.setCursor(0,0);
(timer); als (key2! = NO_KEY)
{terwijl (key2 == NO_KEY)
{key2 = keypad.getKey();
} Als (key2! = NO_KEY)
{lcd.clear();
lcd.setCursor (0,0); lcd.print ("Enter Code:");
terwijl (currentLength < 4) {}
lcd.setCursor (currentLength + 6, 1);lcd.cursor();
char key2 = keypad.getKey (); als (key2! = NO_KEY)
{lcd.print(key2);
ingevoerd [currentLength] = key2; currentLength ++;
delay(200);LCD.noCursor();
lcd.setCursor (currentLength + 5, 1);lcd.print("*");
lcd.setCursor (currentLength + 6, 1);lcd.cursor();
}}
Als (currentLength == 4) {}
Als ([0] ingevoerd wachtwoord [0] == & & ingevoerd [1] == wachtwoord [1] & & ingevoerd [2] == wachtwoord [2] & & ingevoerd [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"), als (Mcount < 14)
{Mcount = Mcount + 1;
} Als (Scount < 59)
{Scount = Scount + 30;
} delay(1500);
currentLength = 0;}
}}
}}
VOID timer () {}
Als (Mcount > = 15) {}
terwijl (Mcount > = 15) {}
lcd.noCursor();lcd.clear();
LCD.Home (); lcd.print("! BoOm! ");
tone1.Play (NOTE_A2, 200); digitalWrite (ledPin, hoge); Hiermee stelt u de LED op
tone1.Play (NOTE_A2, 200);delay(10); wacht een seconde
digitalWrite (ledPin, laag); Hiermee stelt u de LED-offtone1.play (NOTE_A2, 200);
delay(10); wacht op een seconddigitalWrite (ledPin2, hoge); Hiermee stelt u de LED op
tone1.Play (NOTE_A2, 200);delay(10); wacht een seconde
digitalWrite (ledPin2, laag); Hiermee stelt u de LED-offtone1.play (NOTE_A2, 200);
delay(10); wacht op een secondchar-key4 = keypad.getKey();
Als (key4! = NO_KEY) {}
terwijl (key4 == NO_KEY) {}
key4 = keypad.getKey();}
Als (key4 = '#') {}
LCD.Clear (); lcd.print ("Reset the Bomb");
}}
} Als (Mcount == 60) / / als Mcount 60 is deze operatie doen
{//delay (32); / / goede plek om te fine-tunen timing
Mcount = 0; Reset McountHcount ++;
} Als (Hcount > 23)
{Dcount ++;
Hcount = 0; hebben Hcount op "0" na 24 uur resetten}
lcd.setCursor (0,1); cursor ingesteld op 2e linelcd.print ("Timer:");
LCD.Print (Dcount);lcd.print (":");
LCD.Print (Hcount);lcd.print (":");
LCD.Print (Mcount);lcd.print (":");
LCD.Print (Scount);
Als (Scount > 59) / / 60 doet deze operatie {}
Mcount ++; er 1 bij optellen om McountScount = 0; Reset Scount
vertraging (58); wijzigingen ms per min}
Als (Scount < 60) / / do dit oper. 59 keer {}
unsigned long currentMillis = millis (); //delay (988); veranderen door een = 60 ms per min
Als (currentMillis - secMillis > interval) {}
tone1.Play (NOTE_G5, 200); secMillis = currentMillis;
Scount ++; er 1 bij optellen om ScountdigitalWrite (ledPin2, hoge); Hiermee stelt u de LED op
delay(10); wacht op een seconddigitalWrite (ledPin2, laag); de LED vertrekt
delay(10); wacht een seconde}
}}