Sensore gas MQ-2 e MQ-5 con Arduino: LED e soglia di allarme
Leggiamo il valore analogico di un sensore MQ con Arduino e attiviamo un LED quando viene superata una soglia, visualizzando contemporaneamente la misura sul Monitor Seriale.
Cosa imparerai
- come collegare un sensore MQ ad Arduino;
- come leggere il segnale con
analogRead(); - come definire una soglia di allarme;
- come attivare un LED o un’uscita digitale;
- come osservare i valori sul Monitor Seriale;
- perché i sensori MQ richiedono riscaldamento e calibrazione.
MQ-2 e MQ-5: cosa rilevano
Nella pagina originale il sensore MQ-2 viene indicato come adatto alla rilevazione di GPL, i-butano, propano, metano, idrogeno e fumo; per l’MQ-5 vengono citati GPL, gas naturale e gas di città.
| Sensore | Gas citati nel progetto originale |
|---|---|
| MQ-2 | GPL, i-butano, propano, metano, idrogeno, fumo |
| MQ-5 | GPL, gas naturale, gas di città |
Materiale necessario
🧰 Kit Arduino consigliato
Molti progetti del sito usano sensori, LED, resistenze e breadboard. Un kit completo può essere comodo per iniziare.
👉 Guarda il kit Arduino consigliatoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
📘 Vuoi imparare Arduino passo dopo passo?
Nei miei libri trovi spiegazioni progressive, schemi chiari e progetti pratici pensati anche per chi parte da zero.
👉 Scopri i miei libri su ArduinoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
Il sensore MQ
I sensori della famiglia MQ utilizzano un elemento sensibile riscaldato. La sua risposta elettrica cambia in presenza di determinati gas. Il circuito misura questa variazione e Arduino può leggerla tramite un ingresso analogico.
Sensore MQ utilizzato nel progetto originale.
Schema del sensore e collegamenti
La pagina storica segnala che il sensore MQ-5 nudo dispone di sei piedini e deve essere collegato seguendo lo schema corretto. Se utilizzi invece un modulo già montato su schedina, il cablaggio può essere molto più semplice.
Schema del circuito Arduino con sensore gas e LED.
Collegamenti principali
| Elemento | Collegamento | Funzione |
|---|---|---|
| Uscita analogica sensore | A0 | Lettura del valore |
| LED / uscita allarme | D8 | Segnalazione quando la soglia è superata |
| Monitor Seriale | 9600 baud | Visualizzazione del valore letto |
Simulazione Tinkercad
▶️ Apri la simulazione TinkercadCodice Arduino commentato
// ==========================================================
// SENSORE GAS MQ-2 / MQ-5 CON ARDUINO
// Lettura analogica e soglia di allarme
// ==========================================================
// Pin del LED o dell'uscita di allarme
const int ledPin = 8;
// Uscita analogica del sensore
const int sensorPin = A0;
// Soglia usata nel progetto originale.
// Deve essere calibrata sul sensore reale.
const int soglia = 500;
void setup() {
// Configura il LED come uscita
pinMode(ledPin, OUTPUT);
// Avvia il Monitor Seriale
Serial.begin(9600);
}
void loop() {
// Legge il valore analogico del sensore
int sensorValue = analogRead(sensorPin);
// Mostra la lettura sul Monitor Seriale
Serial.println(sensorValue);
// Se il valore supera la soglia...
if (sensorValue > soglia) {
// ...accende il LED
digitalWrite(ledPin, HIGH);
}
else {
// Altrimenti mantiene il LED spento
digitalWrite(ledPin, LOW);
}
// Piccolo intervallo per rendere più leggibile il monitor
delay(200);
}
Come funziona il codice
1. Lettura del sensore
analogRead(A0) restituisce un valore numerico proporzionale alla tensione presente sull’ingresso analogico.
2. Visualizzazione sul Monitor Seriale
Serial.println(sensorValue) permette di osservare come cambia il valore del sensore durante il test.
3. Confronto con la soglia
Nel progetto storico viene utilizzata una soglia pari a 500. Se il valore è maggiore, il pin 8 viene portato HIGH e il LED si accende.
Riscaldamento del sensore
I sensori MQ utilizzano un elemento riscaldante interno. Appena alimentati possono produrre letture instabili; prima di valutare seriamente la soglia è quindi necessario attendere che il sensore raggiunga condizioni più stabili.
Per applicazioni di misura più rigorose bisogna seguire le indicazioni del datasheet del modello specifico, compresi i tempi di pre-riscaldamento e la procedura di calibrazione.
Come calibrare la soglia
- alimenta il sensore e lascialo stabilizzare;
- apri il Monitor Seriale a 9600 baud;
- annota i valori in aria normale;
- osserva come cambia il segnale durante un test controllato e sicuro;
- scegli una soglia coerente con i valori osservati;
- ripeti la verifica più volte.
Perché il valore non è direttamente in ppm
Lo sketch originale visualizza il valore grezzo dell’ADC. Per trasformarlo in una stima di concentrazione servono la resistenza del sensore, la resistenza di carico, la calibrazione in aria di riferimento e la curva del datasheet. Per questo, nella forma attuale, il progetto va interpretato come rilevatore di variazioni e soglie, non come strumento di misura certificato.
Scarica lo sketch originale
⬇️ Scarica gas_sensor_arduino.ino
Debug rapido
- verifica alimentazione e GND del sensore;
- controlla che l’uscita analogica sia collegata ad A0;
- apri il Monitor Seriale a 9600 baud;
- se il valore resta fermo, verifica cablaggio e modulo;
- se il LED resta sempre acceso, aumenta la soglia dopo aver osservato i valori reali;
- se il sensore è appena stato alimentato, attendi che si stabilizzi;
- controlla sempre il datasheet del modello esatto MQ utilizzato.
Varianti del progetto
- aggiungere un buzzer;
- pilotare un relè tramite un circuito adatto;
- mostrare il valore su LCD o OLED;
- registrare le letture su scheda SD;
- inviare una notifica con ESP32;
- creare un sistema con più sensori MQ;
- aggiungere isteresi alla soglia per evitare continui ON/OFF vicino al limite.
Cosa devi ricordare
- MQ-2 e MQ-5 sono sensori della famiglia MQ con sensibilità a diversi gas.
- Arduino legge il segnale analogico con
analogRead(). - La soglia 500 del progetto originale è solo un esempio.
- I sensori MQ richiedono tempo di riscaldamento e calibrazione.
- Il valore grezzo non equivale automaticamente a ppm.
- Il progetto è didattico e non sostituisce un rilevatore certificato.
Domande frequenti
Posso usare MQ-5 al posto di MQ-2?
Il principio del progetto è simile, ma i due sensori hanno sensibilità differenti. Va sempre consultato il datasheet del modello utilizzato.
Perché il valore cambia anche senza gas?
Temperatura, umidità, stabilizzazione del sensore e contaminanti ambientali possono influenzare la lettura. Per questo è importante calibrare e osservare il comportamento reale.
Posso collegare direttamente un relè al pin 8?
Non è consigliabile pilotare direttamente una bobina di relè dal pin di Arduino. Usa un modulo relè adatto o uno stadio di pilotaggio corretto.
Posso usarlo come allarme gas domestico?
No. Per la sicurezza domestica vanno utilizzati dispositivi certificati progettati specificamente per quel tipo di gas e installazione.

