Sajnos MQ2 Gáz érzékelő szenzorhoz sem találtam, fritzing modult a kapcsoláshoz, ezért csak képes és szöveges illusztrációval magyarázom a kapcsolást. A kapcsolás lényege, hogy ha az analóg lábon beolvasott érték egy bizonyos érték fölé kerül, akkor a piezo csipogó riaszt. A piezo csipogó bekötését egy korábbi cikkben ismertettem.
Az MQ2 modul bekötése itt is úgy érzem egyértelmű:
GND — GND
VCC — 5V
AOUT — A0
DOUT – D3
A piezo csipogó „S” lába a D2 pinre kötve a „-” lába a GND-re.
Az MQ2 érzékelő digitális kimenetét, úgy tudjuk használni, hogy a potméterrel beállítjuk az érzékenységet. Abban az esetben, ha a beállított érzékenység fölé kerül a gáz vagy a füst koncentrációja, akkor a digitális láb kimenete átbillen 0-ba. Ahhoz hogy meggyőződjünk a mükődés helyességéről ahhoz nem kell csak egy öngyújtú. Ahogy engedjük az öngyújtóból a gázt, mielőtt a beolvasott analóg értéket elérjük, a potméter melletti kis smd led kigyullad abban az esetben ha a potméterrel beállított érték alacsonyabb mint az analóg küszöb. Ahogy a led kigyullad, azzal egyidőben a DOUT átmegy 0-ba.
A program működése közben a digitális kimenet 0-ba billenését a serial monitoron követhetjük nyomon, illetve a potméter melletti led kigyúlladásával. A kiíratást lassíthatjuk az oszthatósági vizsgálat módusának az átállításával.
MQ2 Gáz érzékelő Arduino forráskód:
const int analogpin = A0; // Gázérzékelő Analóg bemenete
const int sound_pin = 2; // Piezzo csipógó pin
const int gas_pin = 3;
int sensor_value = 0;
int d_out = 0;
int j=0;
void setup() {
Serial.begin(9600);
pinMode(sound_pin, OUTPUT);
}
void loop() {
j=j+1;
d_out = digitalRead(gas_pin);
if (d_out == 1)
{
if (j%100 == 0)
{
Serial.println("Digital OUT OFF" );
}
}
else
{
if (j%100 == 0)
{
Serial.println("Digital OUT ON" );
}
alarm();
}
// Analóg érték beolvasása
sensor_value = analogRead(analogpin);
if (sensor_value >= 750)
{
alarm();
}
// Serial monitorra kiíratás
if (j%100 == 0)
{
Serial.print("sensor = " );
Serial.println(sensor_value);
}
delay(10);
}
//===============================================================
void alarm()
{
int i; // léptető operátor
for(i=0;i<100;i++)
{
digitalWrite(sound_pin,HIGH);
delay(1);
digitalWrite(sound_pin,LOW);
delay(1);
}
for(i=0;i<10;i++)
{
digitalWrite(sound_pin,HIGH);
delay(2);
digitalWrite(sound_pin,LOW);
delay(2);
}
for(i=0;i<10;i++)
{
digitalWrite(sound_pin,HIGH);
delay(3);
digitalWrite(sound_pin,LOW);
delay(3);
}
}




