Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.06 KB | None | 0 0
  1. /*
  2. Name: Sketch9.ino
  3. Created: 5/16/2018 12:51:43 PM
  4. Author: Malik
  5. */
  6.  
  7. // Her inkluderes relevante libraries
  8. #include <Wire.h>
  9. #include <rgb_lcd.h>
  10. #pragma Spark_no_preprocessor //Denne linje er for at bypasse et problem med compileren
  11.  
  12. rgb_lcd LCD;
  13. const int ColorR = 255;
  14. const int ColorG = 0;
  15. const int ColorB = 0;
  16.  
  17. const int btnaktiv = 2;
  18. const int btndeaktiv = 3;
  19. const int btnalarm = 4;
  20. const int Buzzer = 5;
  21. const int magnetswitch = 6;
  22. const int tiltswitch = 7;
  23. const int soundsensor = A0;
  24. int Alarm_aktiv = 0;
  25. int Alarm_Alarm = 0;
  26. int Buttonstate_aktiv = 0;
  27. int Lydniveau = 0;
  28. int Buttonstate_deaktiv = 0;
  29. int Buttonstate_ALARM = 0;
  30.  
  31. // the setup function runs once when you press reset or power the board
  32. void setup() {
  33.  
  34. pinMode(btnaktiv, INPUT);
  35. pinMode(btndeaktiv, INPUT);
  36. pinMode(btnalarm, INPUT);
  37. pinMode(Buzzer, OUTPUT);
  38. pinMode(magnetswitch, INPUT);
  39. pinMode(tiltswitch, INPUT);
  40. pinMode(soundsensor, INPUT);
  41. LCD.begin(16, 2);
  42. LCD.setRGB(ColorG, ColorB, ColorR);
  43. LCD.clear(); //Der sikres at LCD'en er clearet.
  44. LCD.print("Alarm Deaktiv"); //Og skrives at den som standard er sat som deaktiv
  45.  
  46. }
  47.  
  48. void loop() {
  49. //Der læses her på de digitale indgange og skrives til lokale tags
  50. Buttonstate_aktiv = digitalRead(btnaktiv);
  51. Buttonstate_deaktiv = digitalRead(btndeaktiv);
  52. Buttonstate_ALARM = digitalRead(btnalarm);
  53. Lydniveau = analogRead(soundsensor);
  54. delay(10);
  55.  
  56. if (Buttonstate_aktiv == HIGH)
  57. {
  58. //En simpel men lang command der sætter alarmsignalet som tændt og tæller ned fra 5. Buzzer larmer i takt.
  59. Alarm_aktiv = 1;
  60. digitalWrite(Buzzer, 1);
  61. LCD.setCursor(0, 0);
  62. LCD.print("Tid tilbage i S");
  63. LCD.setCursor(0, 1);
  64. LCD.print("5");
  65. delay(1000);
  66. digitalWrite(Buzzer, 0);
  67. LCD.setCursor(0, 1);
  68. LCD.print("4");
  69. delay(1000);
  70. digitalWrite(Buzzer, 1);
  71. LCD.setCursor(0, 1);
  72. LCD.print("3");
  73. delay(1000);
  74. digitalWrite(Buzzer, 0);
  75. LCD.setCursor(0, 1);
  76. LCD.print("2");
  77. delay(1000);
  78. digitalWrite(Buzzer, 1);
  79. LCD.setCursor(0, 1);
  80. LCD.print("1");
  81. delay(1000);
  82. digitalWrite(Buzzer, 0);
  83. LCD.setCursor(0, 0);
  84. LCD.print("Alarm Aktiv ");
  85. LCD.setCursor(0, 1);
  86. LCD.print(" ");
  87. //Alarmen er nu sat og dette skrives også i LCD display
  88. Alarm_aktiv = 1;
  89. Buttonstate_aktiv = 0;
  90. delay(50);
  91. }
  92. else {
  93. //Hvis alarmen ikke aktiveres sikres det blot at buzzeren er slukket
  94. digitalWrite(Buzzer, 0);
  95. delay(50);
  96.  
  97. }
  98. if (digitalRead(magnetswitch) == HIGH && Alarm_aktiv==1) {
  99. //Alle aktivereings commands er de samme. Er vores lokale Alarmtag (Alarm_aktiv) aktivt, samt en vilkårlig condition
  100. //Så sættes alarmen og buzzeren går igang. Der skrives på begge linjer (pga pladsmangel) hvilken condition er mødt.
  101. digitalWrite(Buzzer, 1);
  102. LCD.clear();
  103. LCD.print("Alarm aktiveret");
  104. LCD.setCursor(0, 1);
  105. LCD.print("af Magnet Switch");
  106. delay(50);
  107.  
  108. }
  109. if (digitalRead(tiltswitch)==HIGH && Alarm_aktiv == 1){
  110. digitalWrite(Buzzer, 1);
  111. LCD.clear();
  112. LCD.print("Alarm aktiveret");
  113. LCD.setCursor(0, 1);
  114. LCD.print("af Tilt Switch");
  115. delay(50);
  116. }
  117. if (Lydniveau>400 && Alarm_aktiv == 1)
  118. {
  119. digitalWrite(Buzzer, 1);
  120. LCD.clear();
  121. LCD.print("Alarm aktiveret");
  122. LCD.setCursor(0, 1);
  123. LCD.print("af Sound Sensor");
  124. delay(50);
  125.  
  126. }
  127. if (Buttonstate_ALARM==HIGH && Alarm_aktiv == HIGH)
  128. {
  129. digitalWrite(Buzzer, 1);
  130. LCD.clear();
  131. LCD.print("Alarm aktiveret");
  132. LCD.setCursor(0, 1);
  133. LCD.print("af Tryk Knap");
  134. delay(50);
  135. }
  136. if (digitalRead(btndeaktiv) == HIGH && Alarm_aktiv == 1) {
  137. //Her resettes alarmen ved tryk på deaktiveringsknappen
  138. digitalWrite(Buzzer, 0);
  139. LCD.clear();
  140. LCD.print("Alarm deaktiv");
  141. Alarm_aktiv = 0;
  142. delay(50); //Delays er sat ind for at sikre at information ikke læses dobbelt ved et uheld
  143.  
  144. }
  145.  
  146. Buttonstate_aktiv = 0;
  147. Buttonstate_ALARM = 0;
  148. Buttonstate_deaktiv = 0;
  149. delay(50);
  150. //Her sikres at alle lokale tags er resat før de læses igen. Dette gav lidt fejl ved compiler
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement