How to add a Blinking system to my program

#define CAYENNE_PRINT Serial
#include <CayenneMQTTYun.h> //MQTT Arduino Yun Library
/Hardware Related Macros************/
#define MG_PIN (A0) //define which analog input channel you are going to use
#define BOOL_PIN (2)
#define DC_GAIN (8.5) //define the DC gain of amplifier

/Software Related Macros*************/
#define READ_SAMPLE_INTERVAL (50) //define how many samples you are going to take in normal operation
#define READ_SAMPLE_TIMES (5) //define the time interval(in milisecond) between each samples in
//normal operation

/Application Related Macros************/
//These two values differ from sensor to sensor. user should derermine this value.
#define ZERO_POINT_VOLTAGE (0.220) //define the output of the sensor in volts when the concentration of CO2 is 400PPM
#define REACTION_VOLTGAE (0.030) //define the voltage drop of the sensor when move the sensor from air into 1000ppm CO2

/Globals******************/
float CO2Curve[3] = {2.602,ZERO_POINT_VOLTAGE,(REACTION_VOLTGAE/(2.602-3))};
//two points are taken from the curve.
//with these two points, a line is formed which is
//"approximately equivalent" to the original curve.
//data format:{ x, y, slope}; point1: (lg400, 0.324), point2: (lg4000, 0.280)
//slope = ( reaction voltage ) / (log400 –log1000)

//Username,password,clientID from Cayenne webpage
//Allow Arduino to communicate with Cayenne
char username[] = "65f0e750-503b-11e9-ad96-c15442ccb423";
char password[] = "a5110852eff8cb0c4b999b8b681fda94c67f6274";
char clientID[] = "84bf0640-5427-11e9-ba40-5d168a516101";

void setup() {
Serial.begin(115200); //set buad rate to 115200 to use MQTT communication
Cayenne.begin(username, password, clientID); //begin communication between Arduino and Cayenne

//CO2 sensor
pinMode(BOOL_PIN, INPUT); //set pin to input
digitalWrite(BOOL_PIN, HIGH); //turn on pullup resistors

Serial.print("MG-811 Demostration\n");
pinMode(13,OUTPUT);
}
void loop(){
Cayenne.loop();

int percentage;
float volts;

volts = MGRead(MG_PIN);
Serial.print( "SEN0159:" );
Serial.print(volts);
Serial.print( "V " );

percentage = MGGetPercentage(volts,CO2Curve);
Serial.print("CO2:");
if (percentage == -1) {
Serial.print( "<400" );
} else {
Serial.print(percentage);
}

Serial.print( "ppm" );
Serial.print("\n");

if( percentage > 1000.0 ) {
if( ledState ) {

ledState = true;
} else

ledState = false;
}

}

if (digitalRead(BOOL_PIN) ){
Serial.print( "=====BOOL is HIGH======" );
} else {
Serial.print( "=====BOOL is LOW======" );
}

Serial.print("\n");
Cayenne.virtualWrite(6,percentage, "co2", "ppm");
delay(500);
}

/***************************** MGRead *********************************************
Input: mg_pin - analog channel
Output: output of SEN-000007
Remarks: This function reads the output of SEN-000007
************************************************************************************/
float MGRead(int mg_pin)
{
int i;
float v=0;

for (i=0;i<READ_SAMPLE_TIMES;i++) {
v += analogRead(mg_pin);
delay(READ_SAMPLE_INTERVAL);
}
v = (v/READ_SAMPLE_TIMES) *5/1024 ;
return v;
}

/***************************** MQGetPercentage **********************************
Input: volts - SEN-000007 output measured in volts
pcurve - pointer to the curve of the target gas
Output: ppm of the target gas
Remarks: By using the slope and a point of the line. The x(logarithmic value of ppm)
of the line could be derived if y(MG-811 output) is provided. As it is a
logarithmic coordinate, power of 10 is used to convert the result to non-logarithmic
value.
************************************************************************************/
int MGGetPercentage(float volts, float *pcurve)
{
if ((volts/DC_GAIN )>=ZERO_POINT_VOLTAGE) {
return -1;
} else {
return pow(10, ((volts/DC_GAIN)-pcurve[1])/pcurve[2]+pcurve[0]);
}
}

How to make my led blink whenever the c02 value is above 1k

How to make my led blink whenever the c02 value is above 1k

It would be easier to describe how to do that if you had posted your code properly. Read the stickies, to learn how.

#define         MG_PIN                       (A0)     //define which analog input channel you are going to use
#define         BOOL_PIN                     (2)
#define         DC_GAIN                      (8.5)   //define the DC gain of amplifier

Rubbish. Don't use #define preprocessor directives to "define variables". Use proper variable declaration statements, and use the const keyword whenever you can.

You have a BOOL connect to some pin? What the heck is a BOOL?

float           CO2Curve[3]  =  {2.602,ZERO_POINT_VOLTAGE,(REACTION_VOLTGAE/(2.602-3))};

Youreallyshouldgetyourspacekeyfixed. That mess is just too hard to read.

    if( percentage > 1000.0 ) {
       if( ledState ) {










                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
          ledState = true;
       } else
       
          ledState = false;
       }
   
    }

Was

there

really

some

good

reason

for

all

that

banging

of

the

return

key?

    if( percentage > 1000.0 )
    {
       ledState = !ledState;
    }

uses way fewer lines, and does the same thing.

If you want the LED to blink, you need to make the state change time dependent, as in the blink without delay example.

maybe it helps. maybe it is too much. in my project I have: