MQ-5: come calcolare la quantità di gas in ppm?

Buonasera!
Sto provando un sensore Mq-5 per la qualità dell'aria...
Ora sto usando questo codice:

#define SensAir A0
float val;
void setup()
{
  Serial.begin(9600);
  pinMode(SensAir,INPUT);
}

void loop()
{
  val=analogRead(SensAir);
  Serial.println(val);
  delay(1000);
}

..e mi stampa dei valori che aumentano se per esempio metto vicino un accendino facendo fuoriuscire il gas..
PRIMA DOMANDA: che cosa rappresentano questi dati?
da qui arriva la mia SECONDA DOMANDA: da questi dati, come faccio a ricavarmi i ppm?

Grazie e scusate per il disturbo!! :slight_smile: :slight_smile: :slight_smile:

EDIT: ho pensato che forse sia meglio ottenere la tensione di output e da quella restituire il valore % del gas nell'aria, che dite?

Se da un analogRead() si ricava al massimo 1/1023, quante Parti Per Milione prevedi ?
Io direi che PPM sta per parti per mille.
Probabilmente, ci vorrebbe un sensore in I2C che ti dia un dato di valore più ampio, per ottenere il voluto scopo.

quindi l'unica soluzione potrebbe essere di restituire un valore in %?

void setup() 
{
  Serial.begin(9600);
}
 
void loop() 
{
  float sensorVoltage; 
  float sensorValue;
 
  sensorValue = analogRead(A0);
  sensorVoltage = sensorValue/1024*3.3;
 
  Serial.print("sensor voltage = ");
  Serial.print(sensorVoltage);
  Serial.print(" V;");

  float val = map(sensorVoltage,0.1,4.0,0,100);
  Serial.print(val);
  Serial.println("%");
  delay(1000);
}

questo codice potrebbe andare?