Cara menggunakan Modul deteksi Gas CO MQ7 dengan Arduino

Assalamu’alaikum teman – teman, kali ini kita akan belajar tentang menggunakan sensor MQ7 / MQ-7 dengan Arduino. apa itu sensor MQ7 sensor MQ7 adalah sebuah sensor yang dapat kita gunakan untuk mengukur kadar gas CO / Karbon monoksida/ sebenarnya sensor ini juga bisa digunakan untuk mengukur jenis lain seperti H2 (hidrogen), LPG, CH4 (Amonia) dan juga alkohol. namun sensor ini sering digunakan untuk mengukur CO karena karakteristiknya yang cukup peka dengan gas CO.

Untuk bahan belajar kita kali ini terlebih dahulu kita buat rangkaian seperti dibawah ini

Selanjutnya kita bermain hitung2an dulu  :2thumbup hehh? hitung – hitungan?  :bingung iya karena kita tidak bisa mendapatkan data kosentrasi gas CO dalam “ppm” dengan langsung mengakses begitu saja sensor ini. lalu dari mana kita bisa mendapatkan data ppm dari sensor ini?

Berdasarkan datasheet yang saya ambil disini, kita dapat mendapatkan data kosentrasi gas CO dari grafik dibawah inidari grafik diatas kita dapat mngetahui nilai ppm dengan mengetahui Rs/Ro, dimana Rs adalah tahanan sensor pada kadar CO tertentu / yang sedang kita ukur dan Ro adalah tahanan sensor pada udara yang bersih dengan kadar CO 100ppm. grafik diatas diambil pada suhu 20*C, tingkat kelembaoan 65%, kosentrasi oksigen 21% dan RL 10K Ohm, apa itu RL? nanti kita bahas.

Berarti kita sekarang data yang kita butuhkan adalah data Ro dan Rs untuk mengetahui kadar CO dalam ppm, Ro disini sifatnya adalah untuk kalibrasi, untuk menyamakan hasil pengukuran sensor kita dengan hasil yang sebenarnya atau minimal dengan hasil pengukuran dengan alat yang terstandardisasi. sehingga pada bagian ini Ro kita abaikan dulu, Ro nantinya akan kita gunakan untuk mengkalibrasi hasil pengukuran dengan memgubah ubah nilainya.

Selanjutnya kita cari nilai Rs / hambatan sensor, Bagaimana caranya?

kita dapat mengetahui nilai Rs dengan menggunakan rumus sebagai berikut:

Rs = ( Vc * RL / V RL ) – RL

Dimana,
Rs = Tahanan pada sensor
Vc = Tegangan yang masuk ke Sensor
RL = Tahanan beban pada rangkaian
VRL = tegangan output rangkaian

Oke, dari rumus diatas Vc sudah kita ketahui, jika menggunakan power arduino berarti Vc -+5Volt, Rl kalau pada board yang saya gunakan ( module MQ7 FC-22 ) nilainya adalah 1K Ohm / 1000 Ohm

selanjutnya VRl, pada arduino kita bisa mendapatkan nilai ini dengan mengukurnya menggunakan fungsi ADC ( Analog to Digital Converter ) jika temen – temen belum mengerti bisa dibaca pada artikel Tutorial Belajar Pemrograman Arduino untuk Pemula part 12 : Analog Input, untuk mencari nilai VRl bisa kita mulai dengan membuat rangkaian seperti dibawah ini

lalu kita buat sketch / code seperti ini

#define pinSensor A0 // mendefinisikan bahwa pin yang digunakan 
                     // untuk membaca sensor adalah pin A0

void setup()
{
 Serial.begin(9600);
}

void loop()
{
 int sensorvalue = analogRead(pinSensor); // membaca nilai ADC dari sensor
 float VRL= sensorvalue*5.00/1024;  // mengubah nilai ADC ( 0 - 1023 ) menjadi nilai voltase ( 0 - 5.00 volt )
 Serial.print("VRL : ");
 Serial.print(VRL);
 Serial.println(" volt");
}

dari kode diatas kita sudah mendapatkan nilai RL, berarti kita sudah dapat mencari nilai Rs dengan menggunakan rumus diatas tadi, sehingga codenya menjadi seperti ini

#define pinSensor A0 // mendefinisikan bahwa pin yang digunakan 
                     // untuk membaca sensor adalah pin A0

void setup()
{
 Serial.begin(9600);
}

long RL = 1000; // 1000 Ohm

void loop()
{
 int sensorvalue = analogRead(pinSensor); // membaca nilai ADC dari sensor
 float VRL= sensorvalue*5.00/1024;  // mengubah nilai ADC ( 0 - 1023 ) menjadi nilai voltase ( 0 - 5.00 volt )
 Serial.print("VRL : ");
 Serial.print(VRL);
 Serial.println(" volt");

 float Rs = ( 5.00 * RL / VRL ) - RL;
 Serial.print("Rs : ");
 Serial.print(Rs);
 Serial.println(" Ohm");

 Serial.println();
 delay(500);
}

Dari code diatas kita sudah mengetahui nilai Rs, selanjutnya kita cari nilai ppm. loh, bukanya tadi kita perlu nilai Ro?? Yaps, kita perlu nilai Ro, namun karena keterbatasan ( tidak ada alat pembanding untuk mencari nilai Ro, maka akan kita coba kita cari pendekatanya saja). sebenarnya nilai Ro = Nilai Rs pada CO kadar 100ppm, untuk membuat lingkuangan / media dengan kadar CO 100ppm itulah yang agak susah, karena kondisi 100ppm susah kita buat maka kita akali saja dengan menggunakan kadar ppm di udara normal ( iklim udara ruangan normal ). setelah dicari iklim kadar CO di udara ruang normal adalah 5 – 15ppm. sedangkan range yang dapat dibaca sensor MQ-7 adalah 20ppm – 2000ppm maka kita anggap saja kadar CO pada ruangan adalah 20ppm.

Jadi berapa nilai Ro? diawal tadi sudah kita jelaskan kalau Ro = Rs pada 100pp,  sedangkan data yang kita punya bedasarkan pembacaan menggunakan kode yang nomor 2 tadi adalah data Rs pada 20ppm. berarti berapa nilai Rs pada 100ppm? kita bisa mencarinya menggunakan grafik ini tadi 

gimana caranya? pertama kita harus cari persamaan garisnya, silahkan cari temen yg pinter matematika jika kurang menguasai  🙂 saya sendiri tidak terlalu jago matematika tapi setelah saya coba cari pendekatan persamaan garisnya menggunakan MS Excel ketemu persamaan seperti berikut

sesuai dengan tujuan kita tadi, dengan persamaan diatas timbul pertanyaan “Jika y (ppm)  = 100 , berapa nilai x (Rs/Ro)?? berikut perhitungannya

setelah nilai Rs / Ro kita ketahui maka sekarang kita bisa mencari nilai Ro,

Rs / Ro = 2.863
Rs = 2.863 * Ro
Rs / 2.863 = Ro
Ro = Rs / 2.863

Untuk mencari Ro, ganti nilai Rs yang sudah kita dapatkan sebelunya melaui percobaan coding nomor 2 tadi. anggap saja nilai Rs-nya 2500 ohm ( bisa saja punya teman – teman berbeda ), berarti nilai Ro adalah

Ro = 2500 / 2.863
Ro = 873 ohm

Karena nilai Ro adalah ketetapan maka mau di kondisi 20 ppm atau 100 ppm atau kondisi yang lain maka nilai Ro adalah sama.

Setelah kita tahu nilai Ro maka kita bisa mencari ppm dengan menggunakan persamaam “y = 100*(x^-1.532)” tadi. sehingga setelah dicoba mesukan rumusnya ke code arduino menjadi seperti berikut :

#define pinSensor A0 // mendefinisikan bahwa pin yang digunakan 
                     // untuk membaca sensor adalah pin A0

void setup()
{
 Serial.begin(9600);
}

long RL = 1000; // 1000 Ohm
long Ro = 830; // 830 ohm ( SILAHKAN DISESUAIKAN)

void loop()
{
 int sensorvalue = analogRead(pinSensor); // membaca nilai ADC dari sensor
 float VRL= sensorvalue*5.00/1024;  // mengubah nilai ADC ( 0 - 1023 ) menjadi nilai voltase ( 0 - 5.00 volt )
 Serial.print("VRL : ");
 Serial.print(VRL);
 Serial.println(" volt");

 float Rs = ( 5.00 * RL / VRL ) - RL;
 Serial.print("Rs : ");
 Serial.print(Rs);
 Serial.println(" Ohm");

 float ppm = 100 * pow(Rs / Ro,-1.53); // ppm = 100 * ((rs/ro)^-1.53);
 Serial.print("CO : ");
 Serial.print(ppm);
 Serial.println(" ppm");
 
 Serial.println();
 delay(500);
}

Dan berikut hasilnya ketika dilihat di serial monitor

Sebenarnya kita tidak perlu pusing – pusing seperti yang kita lakukan diatas seperti mencari nilai Ro dan sebagainya, cukup langsung gunakan saja code yang terakhir dan sesuaikan Ro pada bagian

long Ro = 830; // 830 ohm ( SILAHKAN DISESUAIKAN)

dengan menggantinya secara asal / ngawur sampai hasil ppm mendekati hasil yang mendekati kondisi real atau bahkan dengan membandingkannya dengan alat ukur yang standart. namun bagaimanapun juga proses / pengalaman belajar itu lebih berharga daripada sekedar hasil ( meskipun hasil juga penting )

Sekian artikel kali ini, jika ada salah silahkan dikoreksi, jangan lupa tinggalkan jejak di kolom komentar. terima kasih. Salam

Referensi :

Baskara. MQ-7 Sensor Gas CO. http://baskarapunya.blogspot.com/2013/05/mq-7-sensor-gas-co.html, diakses 3 Juli 2018

Sparkfun. Datasheet MQ7. https://www.sparkfun.com/datasheets/Sensors/Biometric/MQ-7.pdf, diakses 3 juli 2018

About Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Pemuda Desa yang berkeinginan ikut membangun Indonesia dengan Sedikit Ilmu yang dimiliki SMK N 2 Wonogiri lulus 2015 UNIV Negeri Yogyakarta lulus 2019 2019 - Sekarang Bekerja di SMK Gajah Mungkur 1 Wuryantoro, Wonogiri

Check Also

Cara Menggunakan / Mengakses Keypad menggunakan Arduino

Assalamu’alaikum teman – teman, kali ini kita akan belajar Arduino lagi, kali ini kita akan …

25 comments

  1. Sebelumnya terima kasih mas Giri Wahyu Pambudi, saya mau tanya, diatas terdapat persamaan y=100*(x-153). selanjutnya nilai y berubah menjadi 20. nilai y=20 itu dapat darimana ya mas? terimakasih.

  2. Giri Wahyu Pambudi

    itu nilai 20ppm mas.

Tinggalkan Balasan