const int co2_warning_thr = 1000;
const int co2_alarm_thr = 1500;
-const unsigned long warmuptime = 60000; // 1 min.
+const unsigned long warmuptime = 60000; // 1 min.
+const unsigned long cooldowntime = 60000; // 1 min.
MHZ19 mhz19 = MHZ19(rx_pin,tx_pin);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
unsigned long time;
+unsigned long lastwarntime = 0;
int co2 = 0;
int temp = 0;
int lastppm = 0;
digitalWrite(led_yellow_pin, co2 >= co2_warning_thr && co2 < co2_alarm_thr);
digitalWrite(led_green_pin, co2 < co2_warning_thr);
- if (co2 >= co2_alarm_thr && lastppm < co2_alarm_thr) {
+ if (co2 >= co2_alarm_thr && lastppm < co2_alarm_thr && time - lastwarntime > cooldowntime) {
buzz(100, 3);
+ lastwarntime = time;
}
- if (co2 >= co2_warning_thr && lastppm < co2_warning_thr) {
+ if (co2 >= co2_warning_thr && lastppm < co2_warning_thr && time - lastwarntime > cooldowntime) {
buzz(500, 1);
+ lastwarntime = time;
}
lcd.setCursor(0, 0);