const int co2_warning_thr = 1000;
const int co2_alarm_thr = 1500;
+const unsigned long warmuptime = 60000; // 1 min.
+
MHZ19 mhz19 = MHZ19(rx_pin,tx_pin);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int temp = 0;
int lastppm = 0;
+void buzz(unsigned long pause, int count) {
+ for (int i = 0; i <= count; i++) {
+ digitalWrite(buzzer_pin, HIGH);
+ delay(pause);
+ digitalWrite(buzzer_pin, LOW);
+ if (i < count - 1) delay(pause);
+ }
+}
void setup()
{
lcd.setCursor(0, 1);
lcd.print("says hello!");
- // LEDs + buzzer
+ // LEDs
pinMode(led_green_pin, OUTPUT);
pinMode(led_yellow_pin, OUTPUT);
pinMode(led_red_pin, OUTPUT);
- pinMode(buzzer_pin, OUTPUT);
digitalWrite(led_green_pin, HIGH);
delay(500);
digitalWrite(led_green_pin, LOW);
digitalWrite(led_red_pin, HIGH);
delay(500);
digitalWrite(led_red_pin, LOW);
- digitalWrite(buzzer_pin, HIGH);
- delay(200);
- digitalWrite(buzzer_pin, LOW);
+
+ // buzzer
+ pinMode(buzzer_pin, OUTPUT);
+ buzz(200, 1);
lcd.clear();
}
digitalWrite(led_green_pin, co2 < co2_warning_thr);
if (co2 >= co2_alarm_thr && lastppm < co2_alarm_thr) {
- digitalWrite(buzzer_pin, HIGH);
- delay(100);
- digitalWrite(buzzer_pin, LOW);
- delay(100);
- digitalWrite(buzzer_pin, HIGH);
- delay(100);
- digitalWrite(buzzer_pin, LOW);
- delay(100);
- digitalWrite(buzzer_pin, HIGH);
- delay(100);
- digitalWrite(buzzer_pin, LOW);
+ buzz(100, 3);
}
if (co2 >= co2_warning_thr && lastppm < co2_warning_thr) {
- digitalWrite(buzzer_pin, HIGH);
- delay(500);
- digitalWrite(buzzer_pin, LOW);
+ buzz(500, 1);
}
lcd.setCursor(0, 0);
lcd.print("CO2: ");
lcd.print(co2);
+ if (time < warmuptime && (co2 == -1 || co2 == 410)) {
+ lcd.print (" (W)");
+ }
lcd.print(" ppm ");
lcd.setCursor(0, 1);
lcd.print("Temp: ");