Hi.
This is a learning project just to teach myself IF and WHILE functions and testing my newly obtained LCD screen.
Basicly this code makes arduino count down from 120 while printing value on screen and when timer reaches zero, detonatorPin goes high.
Code is buggy and crappy and all that, so i appreciate any comments and improvements!
Also sorry for my crappy english
-J
/* Detonator 1.0 By Joona.
Just a joke. Not to be
used in anything illegal
or to endanger any human
or other life.
Creator is not responsible
or liable in any way
for misuse of this
piece of software. */
/* Wiring LCD:
RW - To ground
RS - To digital pin 7
ENABLE - To digital pin 8
DB7 - To digital pin 12
DB6 - To digital pin 11
DB5 - To digital pin 10
DB5 - To digital pin 9
Wiring rest:
digital pin 4 - To led or similiar. */
#include <LiquidCrystal.h> // LCD-Library
int timer=120; // 120 seconds. (2 minutes)
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // defining pins used by lcd.
int detonatorPin = 4; // defining pin used by detonator
void setup() { // This part runs once.
pinMode(detonatorPin, OUTPUT); // defining detonator pin as output
// Setting up the LCD. I used 16*4
lcd.begin(16, 4); // Starting up
// Printing the version
lcd.print(" Detonator 1.0");
}
void loop() { // This part runs until powered off.
// main code for counting down etc.
if (timer<=0) { // If timer reaches zero, you're toast.
lcd.clear(); // clearing lcd.
delay(2000); // Last two seconds
lcd.setCursor(2,1);
lcd.print(" KABOOM!"); // This reminds you, that this is just a joke.
digitalWrite(detonatorPin, HIGH); // Bye!
delay(2000); // Two seconds should be enough for detonating.
digitalWrite(detonatorPin, LOW); // Looping this part over and over in case it did not work at first.
}
else{
lcd.setCursor(2, 3); } // if timer value is greater than 0, keep on counting.
// The actual counting down part
while(timer>=0) { // While timer value is greater than zero
lcd.print(timer); // Print timer value to LCD
lcd.setCursor(2, 3); // Just to set the cursor right.
timer--; // Reducing the timer value by one
delay(1000); // wait one second
// Next part is purely for the hollywood effect :P
if (timer<=100){ // 100seconds remaining
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Defuse faster!"); // Where is Jack Bauer when you need him?
lcd.setCursor(2,3); }
if (timer<=60) { // One minute remaining.
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Time's almost up"); // There's still plenty of time...!
lcd.setCursor(2,3); }
if (timer<=10) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Goodbye"); // Awwwsshhiiit.
lcd.setCursor(3,3); // centering the cursor for last few seconds.
} }
}