MQ-131: ตรวจจับโอโซน (O3) ใช้ในการตรวจวัดคุณภาพอากาศและการตรวจสอบมลพิษ
เซ็นเซอร์ MQ-131 เป็นเซ็นเซอร์ตรวจจับก๊าซโอโซน (O3) ที่มีความไวสูง การทำงานของเซ็นเซอร์นี้อาศัยหลักการเปลี่ยนแปลงความต้านทานไฟฟ้าของสารกึ่งตัวนำเมื่อสัมผัสกับก๊าซโอโซน โดยมีลักษณะการทำงานดังนี้:
- หลักการทำงาน:
- เมื่อเซ็นเซอร์สัมผัสกับก๊าซโอโซน, ปฏิกิริยาเคมีจะเกิดขึ้นบนพื้นผิวของสารกึ่งตัวนำ
- ปฏิกิริยานี้ทำให้ความต้านทานไฟฟ้าของสารกึ่งตัวนำเปลี่ยนแปลงไป
- การเปลี่ยนแปลงความต้านทานนี้จะถูกแปลงเป็นสัญญาณไฟฟ้า (แรงดันไฟฟ้า) ที่สามารถอ่านค่าได้
- ทำไมค่าจึงลดลง:
- เซ็นเซอร์ MQ-131 ถูกออกแบบมาให้มีลักษณะการตอบสนองแบบ "inverse" หรือ "กลับด้าน" กล่าวคือ เมื่อความเข้มข้นของก๊าซโอโซนเพิ่มขึ้น, ความต้านทานของเซ็นเซอร์จะลดลง, ส่งผลให้แรงดันไฟฟ้าเอาต์พุตลดลงตามไปด้วย
- สรุปได้ว่า ยิ่งมีก๊าซโอโซนมาก ค่าที่อ่านได้จากเซนเซอร์จะยิ่งน้อยลง
ข้อมูลเพิ่มเติม:
- เซ็นเซอร์ MQ-131 มีช่วงการตรวจจับก๊าซโอโซนที่กว้าง, เหมาะสำหรับการใช้งานในหลากหลายสถานการณ์
- การใช้งานเซ็นเซอร์นี้ต้องมีการสอบเทียบ (calibration) เพื่อให้ได้ค่าที่แม่นยำ
- โดยทั่วไปเซนเซอร์จะมี output ทั้งแบบ analog และ digital
- Analog output แรงดันจะลดลงเมื่อความเข้มข้นของ O3 เพิ่มขึ้น
- Digital output จะเป็น TTL output เมื่อค่าแรงดันต่ำ ไฟ LED จะติด
โคดทดสอบ
// กำหนดขา Analog ที่เชื่อมต่อกับเซ็นเซอร์ MQ-131
const int MQ131_PIN = A0;
// ค่าแรงดันไฟฟ้าอ้างอิง (Vref) ของ Arduino (โดยทั่วไปคือ 5V)
const float VREF = 5.0;
// ค่าความต้านทานของตัวต้านทานโหลด (RL) ในวงจรของเซ็นเซอร์ MQ-131 (หน่วยเป็น kΩ)
// ค่านี้ต้องตรงกับค่าที่ใช้ในวงจรจริง
const float RL = 10.0; // ตัวอย่าง: 10 kΩ
// ค่าความต้านทานของเซ็นเซอร์ในอากาศสะอาด (Rs0)
// ค่านี้ต้องถูกกำหนดจากการสอบเทียบเซ็นเซอร์ในอากาศสะอาด
const float Rs0 = 10.0; // ค่านี้เป็นค่าตัวอย่าง ต้องปรับแก้ตามการสอบเทียบเซ็นเซอร์
void setup() {
Serial.begin(9600);
Serial.println("MQ-131 Ozone Sensor");
}
void loop() {
// อ่านค่าแรงดันไฟฟ้าจากเซ็นเซอร์
int sensorValue = analogRead(MQ131_PIN);
float voltage = (sensorValue / 1023.0) * VREF;
// คำนวณค่าความต้านทานของเซ็นเซอร์ (Rs)
float Rs = RL * ((VREF / voltage) - 1);
// คำนวณอัตราส่วน Rs/Rs0
float ratio = Rs / Rs0;
// แปลงอัตราส่วนเป็นค่า ppm โดยใช้สมการ (สมการนี้ต้องปรับแก้ตาม Datasheet ของเซ็นเซอร์)
// สมการนี้เป็นสมการตัวอย่าง ต้องปรับแก้ตาม Datasheet ของ MQ131
float ppm = pow(10, ((-log10(ratio) + 0.5) / 0.3));
// แสดงผลค่า ppm ใน Serial Monitor
Serial.print("Ozone: ");
Serial.print(ppm);
Serial.println(" ppm");
delay(1000); // หน่วงเวลา 1 วินาที
}
ผลลัพธ์