I have a varible ppm. I can make a grafic with my serial monitor.
Now I want to activate depending the level of measured variablele ppm. three leds.
green orange and red. I dont understand millis . I just use delay for now.
I understand a bit "if (ppm == 0) < and >.
I made a small start.
#include <SoftwareSerial.h>;
SoftwareSerial mySerial(A0, A1); // connect also co2sensor-ardunoUno17 with Tx-A0,Rx-A1,Vin-5v,GND-GND ,Old bootloader in my case
byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
unsigned char response[9];
unsigned int ppm;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
mySerial.write(cmd, 9);
memset(response, 0, 9);
mySerial.readBytes(response, 9);
int i;
byte crc = 0;
for (i = 1; i < 8; i++) crc+=response[i];
crc = 255 - crc;
crc++;
if ( !(response[0] == 0xFF && response[1] == 0x86 && response[8] == crc) ) {
Serial.println("CRC error: " + String(crc) + " / "+ String(response[8]));
} else {
unsigned int responseHigh = (unsigned int) response[2];
unsigned int responseLow = (unsigned int) response[3];
unsigned int ppm = (256*responseHigh) + responseLow;
Serial.println(ppm);
}
delay(1000);
if(ppm == 0) {
Serial.println("PANIK no co2 found!!");
}
if(ppm < 500) {
Serial.println("Oh oh,..<500 we have less co2!!");
}
if(ppm > 500) {
Serial.println("Woohoo 500 or more co2");
}
Serial.println("-----------");
delay(5000);
}