Advertisement
Guest User

Untitled

a guest
Sep 18th, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1. // Tyverialarm.ino
  2. #include "LiquidCrystal.h" // includes the LiquiadCrystal library
  3.  
  4. unsigned int time = millis()/(1000); // int that counts the time in seconds from start
  5. #define echo 3 // Sets HC-SR04 Echo to pin 3.
  6. #define trig 4 // Sets HC-SR04 Trig to pin 4.
  7. const int piezo = 2; // sets the pieo buzzer to pin 2.
  8. LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // sets the lcd pins to 8,9,10,11,12 and 13.
  9.  
  10. void setup() {
  11. Serial.begin(9600); // initializes serial and sets speed to 9600 BPS.
  12. pinMode(trig, OUTPUT); // sets trig to output
  13. pinMode(echo, INPUT); // sets echo as input
  14. pinMode(piezo, OUTPUT); // sets piezo as output
  15. lcd.begin(16, 2); // sets the row and collumns to 16 by 2, since we are using a 16 by 2 display
  16. lcd.setCursor(1, 0); // changes the cursor position to 1, 0.
  17. }
  18.  
  19. void loop() {
  20. float duration; // creates an integer called duration
  21. float distance; // creates an integer called distance
  22. digitalWrite(trig, HIGH); // turns on the trig.
  23. delayMicroseconds(1000); // wait for 1000 microseconds
  24. digitalWrite(trig, LOW); // turns the trig off
  25. duration = pulseIn(echo, HIGH); // reads the echo pin and the value high (http://arduino.cc/en/Reference/pulseIn)
  26. distance = duration / 68.6;
  27. /*
  28. speed of sound 34.3 cm's/ms, so distance = duration/(34.3*2).
  29. We multiply by 2, since the beam from the HC-SR04 needs to travel to the object and then back.
  30. */
  31.  
  32. // 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.
  33. if(distance >=90 || distance <= 0) {
  34. Serial.println("Nothing detected."); // print's to serail and changes line, equivalent to \n.
  35. digitalWrite(piezo, LOW); // we set the piezo buzzer to low, since nothing happens.
  36. lcd.setCursor(0, 0); // sets the lcd cursor to the default (0, 0) position.
  37. lcd.print(millis() / 60000); // prints the time in minutes since start or reset.
  38. lcd.setCursor(9, 0); // sets the cursor 9 spaces to the right on the first row.
  39. lcd.print("minutes"); // prints the text minutes to the LCD.
  40. lcd.setCursor(0, 1); // set the cursor to the second row of the LCD.
  41. lcd.print("since break-in"); // prints the text since break-in onto the LCD.
  42. }
  43. else {
  44. Serial.println("Something detected!"); // writes to serial.
  45. lcd.print("Thief detected!"); // displays text on LCD.
  46. digitalWrite(piezo, HIGH); // turns on the piezo buzzer.
  47. // Here the mario theme song starts, code borrowed and re-formated from (wiki.mikrotik.com/wiki/Super_Mario_Theme)
  48. tone(piezo, 660, 100); // tone is a function, with the arguments (output pin, frequency, length)
  49. delay(150); // inserts a 150 ms delay.
  50. tone(piezo, 660, 100);
  51. delay(300);
  52. tone(piezo, 660, 100);
  53. delay(300);
  54. tone(piezo, 510, 100);
  55. delay(100);
  56. tone(piezo, 660, 100);
  57. delay(300);
  58. tone(piezo, 770, 100);
  59. delay(550);
  60. tone(piezo, 380, 100);
  61. delay(575);
  62.  
  63. tone(piezo, 510, 100);
  64. delay(450);
  65. tone(piezo, 380, 100);
  66. delay(400);
  67. tone(piezo, 320, 100);
  68. delay(500);
  69. tone(piezo, 440, 100);
  70. delay(300);
  71. tone(piezo, 480, 80);
  72. delay(330);
  73. tone(piezo, 450, 100);
  74. delay(150);
  75. tone(piezo, 430, 100);
  76. delay(300);
  77. tone(piezo, 380, 100);
  78. delay(200);
  79. tone(piezo, 660, 80);
  80. delay(200);
  81. tone(piezo, 760, 50);
  82. delay(150);
  83. tone(piezo, 860, 100);
  84. delay(300);
  85. tone(piezo, 700, 80);
  86. delay(150);
  87. tone(piezo, 760, 50);
  88. delay(350);
  89. tone(piezo, 660, 80);
  90. delay(300);
  91. tone(piezo, 520, 80);
  92. delay(150);
  93. tone(piezo, 580, 80);
  94. delay(150);
  95. tone(piezo, 480, 80);
  96. delay(500);
  97.  
  98. tone(piezo, 510, 100);
  99. delay(450);
  100. tone(piezo, 380, 100);
  101. delay(400);
  102. tone(piezo, 320, 100);
  103. delay(500);
  104. tone(piezo, 440, 100);
  105. delay(300);
  106. tone(piezo, 480, 80);
  107. delay(330);
  108. tone(piezo, 450, 100);
  109. delay(150);
  110. tone(piezo, 430, 100);
  111. delay(300);
  112. tone(piezo, 380, 100);
  113. delay(200);
  114. tone(piezo, 660, 80);
  115. delay(200);
  116. tone(piezo, 760, 50);
  117. delay(150);
  118. tone(piezo, 860, 100);
  119. delay(300);
  120. tone(piezo, 700, 80);
  121. delay(150);
  122. tone(piezo, 760, 50);
  123. delay(350);
  124. tone(piezo, 660, 80);
  125. delay(300);
  126. tone(piezo, 520, 80);
  127. delay(150);
  128. tone(piezo, 580, 80);
  129. delay(150);
  130. tone(piezo, 480, 80);
  131. delay(500);
  132.  
  133. tone(piezo, 500, 100);
  134. delay(300);
  135.  
  136. tone(piezo, 760, 100);
  137. delay(100);
  138. tone(piezo, 720, 100);
  139. delay(150);
  140. tone(piezo, 680, 100);
  141. delay(150);
  142. tone(piezo, 620, 150);
  143. delay(300);
  144.  
  145. tone(piezo, 650, 150);
  146. delay(300);
  147. tone(piezo, 380, 100);
  148. delay(150);
  149. tone(piezo, 430, 100);
  150. delay(150);
  151.  
  152. tone(piezo, 500, 100);
  153. delay(300);
  154. tone(piezo, 430, 100);
  155. delay(150);
  156. tone(piezo, 500, 100);
  157. delay(100);
  158. tone(piezo, 570, 100);
  159. delay(220);
  160.  
  161. tone(piezo, 500, 100);
  162. delay(300);
  163.  
  164. tone(piezo, 760, 100);
  165. delay(100);
  166. tone(piezo, 720, 100);
  167. delay(150);
  168. tone(piezo, 680, 100);
  169. delay(150);
  170. tone(piezo, 620, 150);
  171. delay(300);
  172.  
  173. tone(piezo, 650, 200);
  174. delay(300);
  175.  
  176. tone(piezo, 1020, 80);
  177. delay(300);
  178. tone(piezo, 1020, 80);
  179. delay(150);
  180. tone(piezo, 1020, 80);
  181. delay(300);
  182.  
  183. tone(piezo, 380, 100);
  184. delay(300);
  185. tone(piezo, 500, 100);
  186. delay(300);
  187.  
  188. tone(piezo, 760, 100);
  189. delay(100);
  190. tone(piezo, 720, 100);
  191. delay(150);
  192. tone(piezo, 680, 100);
  193. delay(150);
  194. tone(piezo, 620, 150);
  195. delay(300);
  196.  
  197. tone(piezo, 650, 150);
  198. delay(300);
  199. tone(piezo, 380, 100);
  200. delay(150);
  201. tone(piezo, 430, 100);
  202. delay(150);
  203.  
  204. tone(piezo, 500, 100);
  205. delay(300);
  206. tone(piezo, 430, 100);
  207. delay(150);
  208. tone(piezo, 500, 100);
  209. delay(100);
  210. tone(piezo, 570, 100);
  211. delay(420);
  212.  
  213. tone(piezo, 585, 100);
  214. delay(450);
  215.  
  216. tone(piezo, 550, 100);
  217. delay(420);
  218.  
  219. tone(piezo, 500, 100);
  220. delay(360);
  221.  
  222. tone(piezo, 380, 100);
  223. delay(300);
  224. tone(piezo, 500, 100);
  225. delay(300);
  226. tone(piezo, 500, 100);
  227. delay(150);
  228. tone(piezo, 500, 100);
  229. delay(300);
  230.  
  231. tone(piezo, 500, 100);
  232. delay(300);
  233.  
  234. tone(piezo, 760, 100);
  235. delay(100);
  236. tone(piezo, 720, 100);
  237. delay(150);
  238. tone(piezo, 680, 100);
  239. delay(150);
  240. tone(piezo, 620, 150);
  241. delay(300);
  242.  
  243. tone(piezo, 650, 150);
  244. delay(300);
  245. tone(piezo, 380, 100);
  246. delay(150);
  247. tone(piezo, 430, 100);
  248. delay(150);
  249.  
  250. tone(piezo, 500, 100);
  251. delay(300);
  252. tone(piezo, 430, 100);
  253. delay(150);
  254. tone(piezo, 500, 100);
  255. delay(100);
  256. tone(piezo, 570, 100);
  257. delay(220);
  258.  
  259. tone(piezo, 500, 100);
  260. delay(300);
  261.  
  262. tone(piezo, 760, 100);
  263. delay(100);
  264. tone(piezo, 720, 100);
  265. delay(150);
  266. tone(piezo, 680, 100);
  267. delay(150);
  268. tone(piezo, 620, 150);
  269. delay(300);
  270.  
  271. tone(piezo, 650, 200);
  272. delay(300);
  273.  
  274. tone(piezo, 1020, 80);
  275. delay(300);
  276. tone(piezo, 1020, 80);
  277. delay(150);
  278. tone(piezo, 1020, 80);
  279. delay(300);
  280.  
  281. tone(piezo, 380, 100);
  282. delay(300);
  283. tone(piezo, 500, 100);
  284. delay(300);
  285.  
  286. tone(piezo, 760, 100);
  287. delay(100);
  288. tone(piezo, 720, 100);
  289. delay(150);
  290. tone(piezo, 680, 100);
  291. delay(150);
  292. tone(piezo, 620, 150);
  293. delay(300);
  294.  
  295. tone(piezo, 650, 150);
  296. delay(300);
  297. tone(piezo, 380, 100);
  298. delay(150);
  299. tone(piezo, 430, 100);
  300. delay(150);
  301.  
  302. tone(piezo, 500, 100);
  303. delay(300);
  304. tone(piezo, 430, 100);
  305. delay(150);
  306. tone(piezo, 500, 100);
  307. delay(100);
  308. tone(piezo, 570, 100);
  309. delay(420);
  310.  
  311. tone(piezo, 585, 100);
  312. delay(450);
  313.  
  314. tone(piezo, 550, 100);
  315. delay(420);
  316.  
  317. tone(piezo, 500, 100);
  318. delay(360);
  319.  
  320. tone(piezo, 380, 100);
  321. delay(300);
  322. tone(piezo, 500, 100);
  323. delay(300);
  324. tone(piezo, 500, 100);
  325. delay(150);
  326. tone(piezo, 500, 100);
  327. delay(300);
  328.  
  329. tone(piezo, 500, 60);
  330. delay(150);
  331. tone(piezo, 500, 80);
  332. delay(300);
  333. tone(piezo, 500, 60);
  334. delay(350);
  335. tone(piezo, 500, 80);
  336. delay(150);
  337. tone(piezo, 580, 80);
  338. delay(350);
  339. tone(piezo, 660, 80);
  340. delay(150);
  341. tone(piezo, 500, 80);
  342. delay(300);
  343. tone(piezo, 430, 80);
  344. delay(150);
  345. tone(piezo, 380, 80);
  346. delay(600);
  347.  
  348. tone(piezo, 500, 60);
  349. delay(150);
  350. tone(piezo, 500, 80);
  351. delay(300);
  352. tone(piezo, 500, 60);
  353. delay(350);
  354. tone(piezo, 500, 80);
  355. delay(150);
  356. tone(piezo, 580, 80);
  357. delay(150);
  358. tone(piezo, 660, 80);
  359. delay(550);
  360.  
  361. tone(piezo, 870, 80);
  362. delay(325);
  363. tone(piezo, 760, 80);
  364. delay(600);
  365.  
  366. tone(piezo, 500, 60);
  367. delay(150);
  368. tone(piezo, 500, 80);
  369. delay(300);
  370. tone(piezo, 500, 60);
  371. delay(350);
  372. tone(piezo, 500, 80);
  373. delay(150);
  374. tone(piezo, 580, 80);
  375. delay(350);
  376. tone(piezo, 660, 80);
  377. delay(150);
  378. tone(piezo, 500, 80);
  379. delay(300);
  380. tone(piezo, 430, 80);
  381. delay(150);
  382. tone(piezo, 380, 80);
  383. delay(600);
  384.  
  385. tone(piezo, 660, 100);
  386. delay(150);
  387. tone(piezo, 660, 100);
  388. delay(300);
  389. tone(piezo, 660, 100);
  390. delay(300);
  391. tone(piezo, 510, 100);
  392. delay(100);
  393. tone(piezo, 660, 100);
  394. delay(300);
  395. tone(piezo, 770, 100);
  396. delay(550);
  397. tone(piezo, 380, 100);
  398. delay(575);
  399.  
  400. noTone(piezo);
  401. lcd.clear();
  402. }
  403. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement