Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. // sensor MQ7.  alternate heater 5V/1.4V  60sec/90sec
  2. // read sensor @ 88sec(of 90-period)
  3. // Kn.Ny '16
  4. // This program to be used as CO-alarm in tents wintertime during night. (gasoline or firewood burners)
  5. // ****************************************************************************************************
  6. #define a_pin A3
  7. #define powerpin 3
  8. #define lotime 90000UL  // 90 sek lav
  9. #define hitime 60000UL  // 60 sek høy
  10.  
  11. int start_val, end_val; // read  analog value
  12. unsigned long next_time,read_time;
  13. boolean low_now,done_reading; // remember status
  14.  
  15. void setup()
  16. {
  17.   Serial.begin(9600);
  18.   pinMode(powerpin, OUTPUT);
  19.   pinMode(13, OUTPUT); // may be omitted
  20. }
  21.  
  22. void loop()
  23. {
  24.   if (millis() >= next_time) // switch voltage 5V <-> 1.4V
  25.   {
  26.     if (low_now) // then switch to high
  27.     {
  28.       next_time += hitime; // set next change to 90 sec
  29.       digitalWrite(powerpin, HIGH); // => 5V
  30.       digitalWrite(13, HIGH); // LED may be omitted
  31.       low_now = false;
  32.     }
  33.     else
  34.     {
  35.       next_time += lotime;
  36.       read_time=next_time-2000; // read 2 sek ahead of end low period
  37.       done_reading=false; // note: ready for new reading @ end of this period
  38.       digitalWrite(powerpin,LOW); //  => 1.4V
  39.       digitalWrite(13, LOW); // LED - optional
  40.       low_now = true;
  41.     }
  42.   }
  43.   if (!done_reading & (millis()>read_time))  // then do a reading now
  44.   {
  45.     int co_eqv=1023-analogRead(a_pin); // with this code: alarm @ level 235 (ca. 100 ppm CO)
  46.     Serial.println(co_eqv); // should be range 15..25 after 30 min runtime
  47.     done_reading=true;
  48.     // check for alarm.  In MY setup 100ppm CO will give reading 235+-
  49.     if (co_eqv > 235) ; // take action - sound alarm
  50.   }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement