Ecco un esempio di codice per Arduino utilizzando i sensori di gas MQ-2 e MQ-5:
// Definizione dei pin di collegamento dei sensori
const int mq2Pin = A0;
const int mq5Pin = A1;
// Definizione delle costanti di calibrazione per i sensori (da impostare in base ai dati specifici dei sensori)
const float mq2Ro = 10.0;
const float mq5Ro = 5.0;
void setup() {
Serial.begin(9600);
}
void loop() {
// Lettura dei valori analogici dai sensori
int mq2Value = analogRead(mq2Pin);
int mq5Value = analogRead(mq5Pin);
// Calcolo delle resistenze dei sensori
float mq2Rs = (1023.0 - mq2Value) * mq2Ro / mq2Value;
float mq5Rs = (1023.0 - mq5Value) * mq5Ro / mq5Value;
// Calcolo delle concentrazioni di gas in base alle curve di calibrazione dei sensori (da impostare in base ai dati specifici dei sensori)
float mq2PPM = pow(10, ((log10(mq2Rs / mq2Ro) - 1.027) / -0.262));
float mq5PPM = pow(10, ((log10(mq5Rs / mq5Ro) - 2.022) / -0.444));
// Stampa dei valori delle concentrazioni di gas
Serial.print("MQ-2: ");
Serial.print(mq2PPM);
Serial.print(" ppm\t");
Serial.print("MQ-5: ");
Serial.print(mq5PPM);
Serial.println(" ppm");
delay(1000); // Attendi 1 secondo prima di effettuare una nuova lettura
}
Assicurati di aver collegato correttamente i pin dei sensori MQ-2 e MQ-5 all’Arduino e di aver impostato le costanti di calibrazione (mq2Ro e mq5Ro) e le curve di calibrazione (i valori all’interno della funzione pow()) in base ai dati specifici dei tuoi sensori. Puoi trovare queste informazioni nel datasheet dei sensori o attraverso test sperimentali.
Questo codice legge i valori analogici dai pin dei sensori, calcola le resistenze dei sensori e quindi le concentrazioni di gas in parti per milione (ppm) utilizzando le curve di calibrazione specificate. I valori delle concentrazioni di gas vengono quindi stampati sulla porta seriale ogni secondo.