Met behulp van de MQ gassensoren kunnen we verschillende soorten gassen, zoals aardgas, propaan, butaan (aanstekergas), alcohol, benzine, rook etc. detecteren. Er zijn veel QM gassensoren (MQ2, MQ3, MQ4, MQ5, etc.), afhankelijk van het soort gas dat je wil meten kies je de meest geschikte uit (zie de links beneden). In de voorbeelden hier gebruiken we de gassensor module die heel gemakkelijk aan te sluiten is. Als je alleen wil meten of er een 'flinke' hoeveelheid van een bepaald gas aanwezig is, dan is de sensor heel eenvoudig te gebruiken. Als je de precieze hoeveelheid van een bepaald gas wil meten wordt het ingewikkelder (in de links beneden aan de pagina staat meer informatie) maar als je alleen een alarm wil laten afgaan of een relais wil aansturen is de hardware en software heel eenvoudig.
In het voorbeeld is een MQ2 sensor gebruikt.
Om de sensor op butaan te testen kan je een aansteker (zonder vlam) gebruiken.
Hieronder het aansluitschema en een eenvoudige testsketch. Als er op de analoge pin meer dan 300 gemeten wordt gaat de led op pin 13 aan.
// MQ2 gassensor testsketch
const int mqPin = A0; // A0 van MQ naar analoge pin 0
const int ledPin = 13; // LED op pin 13
int sensorWaarde = 0; // variabele voor de sensorwaarde
void setup() {
Serial.begin(9600); // start de serial monitor
pinMode(ledPin, OUTPUT);
}
void loop() {
sensorWaarde = analogRead(mqPin); // meet de waarde op analog 0
if (sensorWaarde > 300) // grenswaarde zelf instellen
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
Serial.print("sensorWaarde = " );
Serial.println(sensorWaarde); // print de waarde van A0 op de monitor
delay(100);
}
De MQ2 sensormodule heeft ook een digitale aansluiting: D0. De waarde daarvan is afhankelijk van de hoeveelheid gas 0 of 1 (LOW of HIGH). De grenswaarde kan je instellen met de potmeter op de sensor. Hieronder staat een voorbeeld van een schakeling waarbij zowel de analoge als de digitale uitgang gebruikt wordt. Als de de waarde op de analoge pin hoger wordt dan 200 (zelf in te stellen), dan gaan de rode led en de buzzer aan. Ook gaat als de digitaleWaarde HIGH is de groene led aan (die is HIGH als er weinig gas is). In plaats van een groene led kan je natuurlijk van alles aansluiten zoals een relais, motor e.d..
De waarde van de weerstand van de buzzer hangt van de buzzer af (kan soms ook zonder).
// MQ2 met buzzer
// Zowel de analoge als de digitale pin zijn aangesloten
int rodeLed = 8;
int groeneLed = 9;
int buzzerPin = 10;
int digitalePin = 7;
int analogePin = A2;
int analogeGrensWaarde = 200; //grenswaarde analoge sensor
void setup()
{
pinMode(digitalePin, INPUT);
pinMode(analogePin, INPUT);
pinMode(rodeLed, OUTPUT);
pinMode(groeneLed, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int digitaleWaarde = digitalRead(digitalePin);
Serial.print(" digitaleWaarde : ");
Serial.print(digitaleWaarde);
int analogeWaarde = analogRead(analogePin);
Serial.print(" analogeWaarde : ");
Serial.println(analogeWaarde);
if (analogeWaarde > analogeGrensWaarde)
{
digitalWrite(rodeLed, HIGH);
digitalWrite(buzzerPin, HIGH);
}
else
{
digitalWrite(rodeLed, LOW);
digitalWrite(buzzerPin, LOW);
}
if (digitaleWaarde == HIGH) {
digitalWrite (groeneLed, HIGH);
}
else {
digitalWrite (groeneLed, LOW);
}
delay(100);
}