I dette eksemplet vil vi lese av sensorens analoge utgangsspenning, og når røyken når et visst nivå vil den røde LED-en lyse. Når utgangsspenningen er under dette nivået, vil en grønn LED være på.
Dette eksemplet skal fungere for alle sensorer i MQ-serien.
Motstanden til sensoren er avhengig av type gass. Disse gassensorene har et innebygd potensiometer som tillater justering av sensorens følsomhet i henhold til nødvendig nøyaktighet.
Hvordan virker det?
Spenningen som sensoren sender ut endres i henhold til røyk-/gassnivået som finnes i atmosfæren. Sensoren gir ut en spenning som er proporsjonal med konsentrasjonen av røyk/gass.
Med andre ord er forholdet mellom spenning og gasskonsentrasjon følgende:
- Jo høyere gasskonsentrasjon, jo større utgangsspenning
- Jo lavere gasskonsentrasjon, jo lavere utgangsspenning
Utgangen kan være et analogt signal (A0) som kan leses med en analog inngang på Arduino, ESP eller en hvilken som helst programmerbar mikrokontroller, eller en digital utgang (D0) som er enten høy eller lav avhengig av tilstedeværelsen av gass.
Pin ledninger
- Alle MQ gasssensorer har 4 pinner:
- A0: Analog utgang
- D0: Digitale pinner
- GND
- VCC: 5V
Se gjerne på koblingsskjemaet under. Etter at du har koblet til alle komponentene riktig, er det på tide å laste opp den nødvendige koden.

Etter å ha satt opp komponentene, flash denne koden inn i mikrokontrolleren. Juster gjerne verdien av «treskelVerdi» med en annen terskelverdi.
// https://www.fibel.no
int rodLed = 2;
int gronnLed = 1;
int sensorA0 = A0;
// Terskelverdi
int treskelVerdi = 400;
void setup() {
pinMode(rodLed, OUTPUT);
pinMode(gronnLed, OUTPUT);
pinMode(sensorA0, INPUT);
Serial.begin(115200);
}
void loop() {
int sensorVerdig = analogRead(sensorA0);
Serial.print("Pin A0: ");
Serial.println(sensorVerdig);
// Sjekker verdien om har nådd terskelverdien
if (sensorVerdig > treskelVerdi) {
digitalWrite(rodLed, HIGH);
digitalWrite(gronnLed, LOW);
} else {
digitalWrite(rodLed, LOW);
digitalWrite(gronnLed, HIGH);
}
delay(100);
}
Og følgende er den samme koden skrevet i micropython. Last opp koden til mikrokontrolleren og kjør den. Hvis du er fornøyd med resultatene, endre navn på filen til main.py slik at den kjører automatisk ved oppstart.
from machine import Pin, ADC
from time import sleep
sensorA0 = ADC(Pin(A0))
rod_led = Pin(2, Pin.OUT)
gronn_led = Pin(1, Pin.OUT)
treskelVerdi = 400
while True:
sensor_verdig = sensorA0.read()
print("Pin A0:", sensor_value)
if (sensor_verdig > treskelVerdi):
rod_led.value(0)
gronn_led.value(1)
else:
rod_led.value(1)
gronn_led.value(0)
sleep(0.1)