Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // sensor MQ7. alternate heater 5V/1.4V 60sec/90sec
- // read sensor @ 88sec(of 90-period)
- // Kn.Ny '16
- // This program to be used as CO-alarm in tents wintertime during night. (gasoline or firewood burners)
- // ****************************************************************************************************
- #define a_pin A3
- #define powerpin 3
- #define lotime 90000UL // 90 sek lav
- #define hitime 60000UL // 60 sek høy
- int start_val, end_val; // read analog value
- unsigned long next_time,read_time;
- boolean low_now,done_reading; // remember status
- void setup()
- {
- Serial.begin(9600);
- pinMode(powerpin, OUTPUT);
- pinMode(13, OUTPUT); // may be omitted
- }
- void loop()
- {
- if (millis() >= next_time) // switch voltage 5V <-> 1.4V
- {
- if (low_now) // then switch to high
- {
- next_time += hitime; // set next change to 90 sec
- digitalWrite(powerpin, HIGH); // => 5V
- digitalWrite(13, HIGH); // LED may be omitted
- low_now = false;
- }
- else
- {
- next_time += lotime;
- read_time=next_time-2000; // read 2 sek ahead of end low period
- done_reading=false; // note: ready for new reading @ end of this period
- digitalWrite(powerpin,LOW); // => 1.4V
- digitalWrite(13, LOW); // LED - optional
- low_now = true;
- }
- }
- if (!done_reading & (millis()>read_time)) // then do a reading now
- {
- int co_eqv=1023-analogRead(a_pin); // with this code: alarm @ level 235 (ca. 100 ppm CO)
- Serial.println(co_eqv); // should be range 15..25 after 30 min runtime
- done_reading=true;
- // check for alarm. In MY setup 100ppm CO will give reading 235+-
- if (co_eqv > 235) ; // take action - sound alarm
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement