Advertisement
mod4

Fire alarm

Jul 19th, 2020
2,325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include "DFRobotDFPlayerMini.h"
  2.  
  3. int fireOn = 700;
  4. int fireOff = 800;
  5. bool fire = false;
  6. bool alarm = false;
  7. bool led = false;
  8.  
  9. DFRobotDFPlayerMini myDFPlayer;
  10.  
  11. void setup() {
  12.   // put your setup code here, to run once:
  13.   Serial.begin(9600);
  14.   pinMode(7, INPUT_PULLUP);
  15.   pinMode(8, OUTPUT);
  16.   pinMode(9, OUTPUT);
  17.  
  18.   digitalWrite(8, LOW);
  19.   digitalWrite(9, LOW);
  20.  
  21.   myDFPlayer.begin(Serial);
  22.   myDFPlayer.volume(30);
  23. }
  24.  
  25. void loop() {
  26.   // put your main code here, to run repeatedly:
  27.   isThereFire();
  28.   if (fire == true) {
  29.     if (alarm == false) {
  30.       myDFPlayer.play(1);
  31.       alarm = true;
  32.     }
  33.   }
  34.   else {
  35.     if (buttonPushed()) {
  36.       alarm = false;
  37.     }
  38.     if(alarm == false && buttonPushed()){
  39.       unsigned long timestamp = millis() + 3000;
  40.       while(buttonPushed()){
  41.         if(timestamp <= millis()){
  42.           alarm = true;
  43.           digitalWrite(8, HIGH);
  44.           digitalWrite(9, HIGH);
  45.           tone(3, 5000);
  46.         }
  47.       }
  48.     }
  49.   }
  50.   if (alarm == true) {
  51.     digitalWrite(8, led);
  52.     digitalWrite(9, !led);
  53.     led = !led;
  54.     tone(3, 2000, 50);
  55.   }
  56.   else {
  57.     digitalWrite(8, LOW);
  58.     digitalWrite(9, LOW);
  59.   }
  60.   delay(100);
  61. }
  62.  
  63. void isThereFire() {
  64.   int fireLevel = analogRead(A0);
  65.   if (fireLevel < fireOn) {
  66.     fire = true;
  67.   }
  68.   else if (fireLevel > fireOff) {
  69.     fire = false;
  70.   }
  71. }
  72.  
  73. bool buttonPushed(){
  74.   return digitalRead(7) == LOW;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement