Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Tyverialarm.ino
- #include "LiquidCrystal.h" // includes the LiquiadCrystal library
- unsigned int time = millis()/(1000); // int that counts the time in seconds from start
- #define echo 3 // Sets HC-SR04 Echo to pin 3.
- #define trig 4 // Sets HC-SR04 Trig to pin 4.
- const int piezo = 2; // sets the pieo buzzer to pin 2.
- LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // sets the lcd pins to 8,9,10,11,12 and 13.
- void setup() {
- Serial.begin(9600); // initializes serial and sets speed to 9600 BPS.
- pinMode(trig, OUTPUT); // sets trig to output
- pinMode(echo, INPUT); // sets echo as input
- pinMode(piezo, OUTPUT); // sets piezo as output
- lcd.begin(16, 2); // sets the row and collumns to 16 by 2, since we are using a 16 by 2 display
- lcd.setCursor(1, 0); // changes the cursor position to 1, 0.
- }
- void loop() {
- float duration; // creates an integer called duration
- float distance; // creates an integer called distance
- digitalWrite(trig, HIGH); // turns on the trig.
- delayMicroseconds(1000); // wait for 1000 microseconds
- digitalWrite(trig, LOW); // turns the trig off
- duration = pulseIn(echo, HIGH); // reads the echo pin and the value high (http://arduino.cc/en/Reference/pulseIn)
- distance = duration / 68.6;
- /*
- speed of sound 34.3 cm's/ms, so distance = duration/(34.3*2).
- We multiply by 2, since the beam from the HC-SR04 needs to travel to the object and then back.
- */
- // if the distance that the HC-SR04 measures is greater or equal to 90 cm's (door width) OR the distance is lower or equal to 0.
- if(distance >=90 || distance <= 0) {
- Serial.println("Nothing detected."); // print's to serail and changes line, equivalent to \n.
- digitalWrite(piezo, LOW); // we set the piezo buzzer to low, since nothing happens.
- lcd.setCursor(0, 0); // sets the lcd cursor to the default (0, 0) position.
- lcd.print(millis() / 60000); // prints the time in minutes since start or reset.
- lcd.setCursor(9, 0); // sets the cursor 9 spaces to the right on the first row.
- lcd.print("minutes"); // prints the text minutes to the LCD.
- lcd.setCursor(0, 1); // set the cursor to the second row of the LCD.
- lcd.print("since break-in"); // prints the text since break-in onto the LCD.
- }
- else {
- Serial.println("Something detected!"); // writes to serial.
- lcd.print("Thief detected!"); // displays text on LCD.
- digitalWrite(piezo, HIGH); // turns on the piezo buzzer.
- // Here the mario theme song starts, code borrowed and re-formated from (wiki.mikrotik.com/wiki/Super_Mario_Theme)
- tone(piezo, 660, 100); // tone is a function, with the arguments (output pin, frequency, length)
- delay(150); // inserts a 150 ms delay.
- tone(piezo, 660, 100);
- delay(300);
- tone(piezo, 660, 100);
- delay(300);
- tone(piezo, 510, 100);
- delay(100);
- tone(piezo, 660, 100);
- delay(300);
- tone(piezo, 770, 100);
- delay(550);
- tone(piezo, 380, 100);
- delay(575);
- tone(piezo, 510, 100);
- delay(450);
- tone(piezo, 380, 100);
- delay(400);
- tone(piezo, 320, 100);
- delay(500);
- tone(piezo, 440, 100);
- delay(300);
- tone(piezo, 480, 80);
- delay(330);
- tone(piezo, 450, 100);
- delay(150);
- tone(piezo, 430, 100);
- delay(300);
- tone(piezo, 380, 100);
- delay(200);
- tone(piezo, 660, 80);
- delay(200);
- tone(piezo, 760, 50);
- delay(150);
- tone(piezo, 860, 100);
- delay(300);
- tone(piezo, 700, 80);
- delay(150);
- tone(piezo, 760, 50);
- delay(350);
- tone(piezo, 660, 80);
- delay(300);
- tone(piezo, 520, 80);
- delay(150);
- tone(piezo, 580, 80);
- delay(150);
- tone(piezo, 480, 80);
- delay(500);
- tone(piezo, 510, 100);
- delay(450);
- tone(piezo, 380, 100);
- delay(400);
- tone(piezo, 320, 100);
- delay(500);
- tone(piezo, 440, 100);
- delay(300);
- tone(piezo, 480, 80);
- delay(330);
- tone(piezo, 450, 100);
- delay(150);
- tone(piezo, 430, 100);
- delay(300);
- tone(piezo, 380, 100);
- delay(200);
- tone(piezo, 660, 80);
- delay(200);
- tone(piezo, 760, 50);
- delay(150);
- tone(piezo, 860, 100);
- delay(300);
- tone(piezo, 700, 80);
- delay(150);
- tone(piezo, 760, 50);
- delay(350);
- tone(piezo, 660, 80);
- delay(300);
- tone(piezo, 520, 80);
- delay(150);
- tone(piezo, 580, 80);
- delay(150);
- tone(piezo, 480, 80);
- delay(500);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 760, 100);
- delay(100);
- tone(piezo, 720, 100);
- delay(150);
- tone(piezo, 680, 100);
- delay(150);
- tone(piezo, 620, 150);
- delay(300);
- tone(piezo, 650, 150);
- delay(300);
- tone(piezo, 380, 100);
- delay(150);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(100);
- tone(piezo, 570, 100);
- delay(220);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 760, 100);
- delay(100);
- tone(piezo, 720, 100);
- delay(150);
- tone(piezo, 680, 100);
- delay(150);
- tone(piezo, 620, 150);
- delay(300);
- tone(piezo, 650, 200);
- delay(300);
- tone(piezo, 1020, 80);
- delay(300);
- tone(piezo, 1020, 80);
- delay(150);
- tone(piezo, 1020, 80);
- delay(300);
- tone(piezo, 380, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 760, 100);
- delay(100);
- tone(piezo, 720, 100);
- delay(150);
- tone(piezo, 680, 100);
- delay(150);
- tone(piezo, 620, 150);
- delay(300);
- tone(piezo, 650, 150);
- delay(300);
- tone(piezo, 380, 100);
- delay(150);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(100);
- tone(piezo, 570, 100);
- delay(420);
- tone(piezo, 585, 100);
- delay(450);
- tone(piezo, 550, 100);
- delay(420);
- tone(piezo, 500, 100);
- delay(360);
- tone(piezo, 380, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 760, 100);
- delay(100);
- tone(piezo, 720, 100);
- delay(150);
- tone(piezo, 680, 100);
- delay(150);
- tone(piezo, 620, 150);
- delay(300);
- tone(piezo, 650, 150);
- delay(300);
- tone(piezo, 380, 100);
- delay(150);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(100);
- tone(piezo, 570, 100);
- delay(220);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 760, 100);
- delay(100);
- tone(piezo, 720, 100);
- delay(150);
- tone(piezo, 680, 100);
- delay(150);
- tone(piezo, 620, 150);
- delay(300);
- tone(piezo, 650, 200);
- delay(300);
- tone(piezo, 1020, 80);
- delay(300);
- tone(piezo, 1020, 80);
- delay(150);
- tone(piezo, 1020, 80);
- delay(300);
- tone(piezo, 380, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 760, 100);
- delay(100);
- tone(piezo, 720, 100);
- delay(150);
- tone(piezo, 680, 100);
- delay(150);
- tone(piezo, 620, 150);
- delay(300);
- tone(piezo, 650, 150);
- delay(300);
- tone(piezo, 380, 100);
- delay(150);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 430, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(100);
- tone(piezo, 570, 100);
- delay(420);
- tone(piezo, 585, 100);
- delay(450);
- tone(piezo, 550, 100);
- delay(420);
- tone(piezo, 500, 100);
- delay(360);
- tone(piezo, 380, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 500, 100);
- delay(150);
- tone(piezo, 500, 100);
- delay(300);
- tone(piezo, 500, 60);
- delay(150);
- tone(piezo, 500, 80);
- delay(300);
- tone(piezo, 500, 60);
- delay(350);
- tone(piezo, 500, 80);
- delay(150);
- tone(piezo, 580, 80);
- delay(350);
- tone(piezo, 660, 80);
- delay(150);
- tone(piezo, 500, 80);
- delay(300);
- tone(piezo, 430, 80);
- delay(150);
- tone(piezo, 380, 80);
- delay(600);
- tone(piezo, 500, 60);
- delay(150);
- tone(piezo, 500, 80);
- delay(300);
- tone(piezo, 500, 60);
- delay(350);
- tone(piezo, 500, 80);
- delay(150);
- tone(piezo, 580, 80);
- delay(150);
- tone(piezo, 660, 80);
- delay(550);
- tone(piezo, 870, 80);
- delay(325);
- tone(piezo, 760, 80);
- delay(600);
- tone(piezo, 500, 60);
- delay(150);
- tone(piezo, 500, 80);
- delay(300);
- tone(piezo, 500, 60);
- delay(350);
- tone(piezo, 500, 80);
- delay(150);
- tone(piezo, 580, 80);
- delay(350);
- tone(piezo, 660, 80);
- delay(150);
- tone(piezo, 500, 80);
- delay(300);
- tone(piezo, 430, 80);
- delay(150);
- tone(piezo, 380, 80);
- delay(600);
- tone(piezo, 660, 100);
- delay(150);
- tone(piezo, 660, 100);
- delay(300);
- tone(piezo, 660, 100);
- delay(300);
- tone(piezo, 510, 100);
- delay(100);
- tone(piezo, 660, 100);
- delay(300);
- tone(piezo, 770, 100);
- delay(550);
- tone(piezo, 380, 100);
- delay(575);
- noTone(piezo);
- lcd.clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement