Hướng dẫn sử dụng cảm biến khí Gas MQ2 (Gas Sensor) với Arduino

Hướng dẫn sử dụng cảm biến khí Gas MQ2 (Gas Sensor) với Arduino

Cảm biến khí Gas MQ2 là một dòng cảm biến được nhiều bạn học sinh, sinh viên sử dụng trong công việc học tập khi còn ngồi trên ghế nhà trường. Với giá thành hợp lý, độ chính xác cao nên được ứng dụng trong nhiều dự án như cảnh báo rò rỉ khí gas, báo động khi có khói…

Qua bài viết hôm nay các bạn sẽ hiểu rõ hơn về cấu tạo cũng như nguyên lý hoạt động của cảm biến khí gas arduino này. Để tạo động lực cho mình ra nhiều nài viết hay hơn, và giúp cho cộng đồng Arduino ngày càng phát triển bằng cách nhấn vào Donate để ủng hộ mình nhé.

Cảm biến khí Gas MQ2

Cảm biến khí Gas MQ2 là một trong những cảm biến được sử dụng rộng rãi nhất trong các dòng cảm biến MQ. Nó là một cảm biến MOS (Metal Oxide Semiconductor). Cảm biến oxit kim loại hay còn được gọi là (Điện trở hóa trị) vì cảm biến dựa trên sự thay đổi điện trở của cảm biến khi tiếp xúc với khí.

Cảm biến khí gas arduino hoạt động trên 5V DC và tiêu thụ khoảng 800mW. Nó có thể phát hiện nồng độ LPGKhóiRượuPropaneHydrogenMethane và Carbon Monoxide từ 200 đến 10000 ppm.

Lưu ý: Cảm biến MQ2 phát hiện nhiều loại khí, nhưng không thể xác định chúng đó là loại khí nào! hầu hết các cảm biến khí trên thị trường hiện nay đều hoạt động theo cách này. Do đó, nó phù hợp để đo hoặc phát hiện nồng độ khí.

Đọc thêm: Cảnh báo rò rỉ khí Gas (Sensor MQ-2) sử dụng NodeMCU ESP8266 và App Blynk

Cấu tạo Cảm biến khí Gas MQ2

Cảm biến khí Gas MQ2 được bao phủ bởi hai lớp lưới thép không gỉ mịn được gọi là “anti-explosion network”. Nó đảm bảo các bộ phận làm nóng bên trong cảm biến không gây nổ vì đang cảm nhận các khí dễ gây cháy.

Ngoài ra, nó còn bảo vệ cảm biến và lọc các hạt bụi lơ lửng trong không khí và chỉ cho phép các phần tử khí đi qua. Một vòng kẹp (Clamp Ring) được mạ đồng cố định phần lưới vào phần còn lại của cảm biến.

Bên trong của cảm biến sẽ có sáu chân và có cấu trúc hình ngôi sao. Hai chân (H) có nhiệm vụ làm nóng bộ phận cảm biến và được liên kết với nhau bằng một sợi dây Niken-Crom.

Bốn dây còn lại (A và B) có nhiệm vụ truyền tín hiệu, được kết nối bằng dây bạch kim. Các dây này được nối với phần thân của cảm biến và truyền những tín hiệu khi dòng điện trong cảm biến có sự thay đổi.

Hình ống ở giữa của cảm biến được làm bằng gốm dựa trên Oxit nhôm (AL2O3) và phủ thêm một lớp Thiếc Dioxide (SnO2). Tin Dioxide là vật liệu quan trọng vì nó nhạy cảm với khí dễ cháy. Mặt khác, bề mặt gốm còn cải thiện hiệu quả làm nóng và đảm bảo cảm biến được làm nóng liên tục đến nhiệt độ làm việc.

Đọc thêm: Máy đo nồng độ cồn bằng cảm biến MQ-135 sử dụng Arduino

Cảm biến khí Gas MQ2 hoạt động như thế nào?

Cảm biến khí Gas MQ2 hoạt động dựa trên nguyên lý phản ứng hóa học khi tiếp xúc các khí trong môi trường. Nguyên tắc hoạt động của nó là khi các khí trong môi trường như khí CO, khí LPG, khí methane, khí Hydro, khói… tiếp xúc với phần tử bên trong cảm biến, làm cho các electron được giải phóng vào Thiếc Dioxide cho phép dòng điện chạy qua cảm biến một cách tự do.

Khi được làm nóng, phần tử cảm biến sẽ tạo ra phản ứng hóa học với các khí tiếp xúc và làm thay đổi điện trở của phần tử cảm biến. Cảm biến MQ2 đo lường các biến đổi điện trở này và chuyển đổi chúng thành tín hiệu điện analog hoặc Digital.

Tổng quan về Module Cảm biến khí Gas MQ2

Module cảm biến khí Gas MQ2 khá đơn giản có hai đầu ra AO và DO, có nhiệm vụ dùng để phát hiện khí ở trong môi trường.

Sự thay đổi điện áp của chân đầu ra của cảm biến (tại chân AO) thay đổi tỷ lệ thuận với nồng độ khói/khí. Nồng độ khí càng cao, điện áp đầu ra càng cao; nồng độ khí càng thấp, điện áp đầu ra càng thấp.

Để xác định tín hiệu số, ở đây module sử dụng một IC so sánh với độ chính xác cao LM393 và được ký hiệu chân Digital (DO).

Module sử dụng một chiết áp để điều chỉnh độ nhạy của cảm biến khi thiết lập đầu ra Digital (DO). Các bạn có thể sử dụng để đặt ngưỡng khi nồng độ khí vượt quá giá trị ngưỡng, module sẽ xuất ra trạng thái LOW nếu không thì ở mức HIGH.

Ngoài ra, module còn có hai đèn LED. Một đèn LED báo nguồn và một đèn LED để báo trạng thái sáng khi nồng độ khí vượt quá giá trị ngưỡng.

Thông số kỹ thuật

Sơ đồ chân Cảm biến khí Gas MQ2

  • AO: Đây là chân analog output, được sử dụng để đọc giá trị tín hiệu analog từ cảm biến. Giá trị đọc được từ chân này thay đổi tùy thuộc vào nồng độ khí trong môi trường.
  • DO: là chân digital output, được sử dụng để đọc giá trị tín hiệu số (0 hoặc 1) từ cảm biến. Khi giá trị tín hiệu vượt quá một ngưỡng được thiết lập trước, chân DOUT sẽ cho ra tín hiệu logic LOW (0), ngược lại sẽ là tín hiệu logic HIGH (1).
  • VCC: là chân nguồn, được nối với nguồn điện DC cung cấp cho cảm biến MQ2 Arduino. Thông thường, nguồn điện sử dụng là 5V.
  • GND: là chân nối đất (GND)

Tinh chỉnh Cảm biến khí Gas MQ2

cảm biến MQ2 là một cảm biến hoạt động bằng cách làm nóng các phần tử bên trong, độ nhạy của cảm biến có thể bị sai lệch nếu không được sử dụng trong một khoảng thời gian dài.

Khi sử dụng lần đầu sau một thời gian không sử dụng (một tháng trở lên), cảm biến phải được làm nóng trong 24-48h để đảm bảo độ chính xác.

Nếu cảm biến được sử dụng thường xuyên, nên làm nóng từ 5-10 phút. Cho cảm biến đọc ở mức cao và giảm dần cho đến khi ổn định.

Các linh kiện cần thiết cho dự án

TÊN LINH KIỆN SỐ LƯỢNG NƠI BÁN
Arduino Uno R3 1 Shopee | Cytron
Cảm biến khí Gas MQ2 1 Shopee | Cytron
Dây cắm 1 Shopee | Cytron
Breadboard 1 Shopee | Cytron

Dự án 1: Phát hiện khí Gas sử dụng chân Analog (A0)

Trong dự án này mình sẽ sử dụng một chân Analog trên Arduino dùng để phát hiện khí gas trong không khí.

Sơ đồ đấu nối Cảm biến khí Gas MQ2 với Arduino

Chân VCC của cảm biến sẽ nối với chân 5V của Arduino và chân GND với GND. Đầu ra A0 của mô-đun sẽ nối với chân Analog (A0) trên Arduino.

Tìm các giá trị ngưỡng của MQ2

Để xác định nồng độ khí có đang nằm trong giới hạn cho phép hay không, các bạn cần ghi lại các giá trị mà cảm biến đọc được khi tiếp xúc với khói/khí.

Dưới đây là một đoạn code dùng để tìm ra các giá trị ngưỡng:

#define MQ2pin 0

float sensorValue;  //variable to store sensor value

void setup() {
	Serial.begin(9600); // sets the serial port to 9600
	Serial.println("MQ2 warming up!");
	delay(20000); // allow the MQ2 to warm up
}

void loop() {
	sensorValue = analogRead(MQ2pin); // read analog input pin 0

	Serial.print("Sensor Value: ");
	Serial.println(sensorValue);
	
	delay(2000); // wait 2s for next reading
}
  • Trong trường hợp không có khói/khí (khoảng 100)
  • Khi có khói/khí (khoảng 400)

Code cảm biến khí Gas Arduino

/* Change the threshold value with your own reading */
#define Threshold 400

#define MQ2pin 0

float sensorValue;  //variable to store sensor value

void setup() {
	Serial.begin(9600); // sets the serial port to 9600
	Serial.println("MQ2 warming up!");
	delay(20000); // allow the MQ2 to warm up
}

void loop() {
  sensorValue = analogRead(MQ2pin); // read analog input pin 0
  
  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);

  if(sensorValue > Threshold)
  {
    Serial.print(" | Smoke detected!");
  }
  
  Serial.println("");
  delay(2000); // wait 2s for next reading
}

Dưới đây là kết quả khi cảm biến khí Gas MQ2 nhận được giá trị và thông báo khi cảm biến vượt ngưỡng và in ra thông báo “Smoke: Detected”.

Dự án 2: Phát hiện khí Gas sử dụng chân Digital (D0)

Tiếp tục, trong dự án này mình sẽ sử dụng chân Digital trên Arduino dùng để phát hiện khí gas trong không khí.

Sơ đồ đấu nối Cảm biến khí Gas MQ2 với Arduino

Sơ đồ đấu nối sẽ giống như dự án trước đó. Chỉ cần thay đổi chân A0 trên module của cảm biến bằng chân D0 và nối với chân số 8 của Arduino.

Tìm các giá trị ngưỡng của MQ2

Như mình đã giới thiệu trước đó, trên module của cảm biến được tích hợp một biến trở dùng để cài đặt ngưỡng trạng thái cho cảm biến, trong dự án này mình sẽ để trạng thái là mức LOW khi phát hiện nồng độ khí vượt ngưỡng.

Để cài đặt ngưỡng, hãy đặt cảm biến khí gần khí gas mà bạn muốn phát hiện và xoay biến trở cho đến khi đèn LED sáng. Sau đó, xoay biến trở theo chiều ngược lại cho đến khi đèn LED tắt.

Code cảm biến khí Gas Arduino

#define MQ2pin 8

int sensorValue;  //variable to store sensor value

void setup() {
	Serial.begin(9600); // sets the serial port to 9600
	Serial.println("MQ2 warming up!");
	delay(20000); // allow the MQ2 to warm up
}

void loop() {
	sensorValue = digitalRead(MQ2pin); // read digital output pin
	Serial.print("Digital Output: ");
	Serial.print(sensorValue);
	
	// Determine the status
	if (sensorValue) {
		Serial.println("  |  Smoke: -");
	} else {
		Serial.println("  |  Smoke: Detected!");
	}
	
	delay(2000); // wait 2s for next reading
}

Kết quả, khi phát hiện khí gas vượt ngưỡng cảm biến MQ2 Arduino sẽ ở mức 1 và in ra màn hình thông báo “Smoke: Detected” và ngược lại là mức 0.

Bài viết liên quan

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments