가스·공기 · 난이도 보통
MQ-5 도시가스 센서의 알코올 선택성을 Rs/R0로 MQ-2와 비교하기
MQ-5는 LPG·천연가스·도시가스에 민감하고 알코올과 연기에는 덜 반응하도록 만든 센서예요. 모듈의 부하 저항 값을 몰라도 구할 수 있는 Rs/R0 비율 식, MQ-2와 나란히 연결해 선택성을 비교하는 코드, 전원 전압과 기준값 탐구를 정리했어요.
이 센서로 무엇을 잴 수 있나
MQ-5는 한웨이 데이터시트에서 "LPG, 천연가스, 도시가스에 감도가 높고 알코올과 연기에는 감도가 낮다"고 소개하는 센서예요. 쓰임새도 "알코올, 요리 연기, 담배 연기의 방해를 피하는" 가스 누출 감지기로 적혀 있어요. 감지 범위는 LPG·LNG·천연가스·아이소뷰테인·프로판·도시가스 200~10000ppm이에요. 우리나라 도시가스는 주로 메테인이 든 LNG예요.
학교에서는 도시가스나 LPG를 학생이 다루지 않으니, 이 글은 다른 질문을 잡아요. "정말 알코올에는 덜 반응할까?"예요. MQ-5와 MQ-2를 나란히 두고 같은 손 소독제를 대어 보면, 데이터시트가 말하는 선택성을 직접 숫자로 확인할 수 있어요. 기준값이 전원 전압이나 날짜에 따라 얼마나 흔들리는지도 잴 수 있어요.
원리
다른 MQ 센서처럼 데운 산화주석 막의 저항(Rs)이 기체에 따라 내려가는 원리예요. MQ-5의 히터 저항은 31Ω(±10%)이라 5V에서 약 0.16A가 흘러요.
이 글의 핵심은 계산이에요. 데이터시트 식 Rs = (Vc ÷ V − 1) × RL에서 V는 AO 전압이에요. 깨끗한 공기에서 잰 전압을 V0, 그때 저항을 R0라고 하면
Rs ÷ R0 = ((Vc − V) ÷ V) ÷ ((Vc − V0) ÷ V0)
가 돼요. 분자와 분모에 같은 RL이 곱해져 있어서 나누면 사라져요. 모듈 뒷면의 RL 값을 몰라도, 회로를 바꾸지 않는 한 Rs/R0는 정확히 구할 수 있다는 뜻이에요. 1보다 작아질수록 반응한 기체가 많아요.
데이터시트는 기준 저항 Ro를 "깨끗한 공기 속 1000ppm 수소에서의 저항"으로, 곡선은 RL 20kΩ 조건으로 그렸어요. 5000ppm 메테인 속 Rs는 10~60kΩ으로 적혀 있어서, 같은 모델끼리도 최대 6배 차이가 날 수 있어요. 센서마다 자기 기준과 비교해야 하는 이유예요.
준비물
- 라즈베리파이 피코와 USB 케이블
- MQ-5 모듈, 비교용 MQ-2 모듈
- 10kΩ 저항 2개, 20kΩ 저항 2개
- 브레드보드, 점퍼선, 멀티미터
- 손 소독제, 면봉, 자
- (탐구 2) 전원이 다른 USB 포트나 5V 어댑터
배선
브레드보드 따라 꽂기 순서 (10단계)
- 피코를 브레드보드 가운데 홈에 걸쳐 꽂아요. USB 단자가 왼쪽을 보게 하고, 1번 핀이 f2, 40번 핀이 e2에 들어가요. 다리가 홈 양쪽에 모두 들어갔는지 옆에서 봐요.
- 빨간 선: 피코 40번 핀(VBUS) 옆 칸 a2 → 아래쪽 + 줄(5V). 이제 이 줄 전체가 5V예요. 위쪽 + 줄(3.3V)과 아래쪽 + 줄(5V)은 절대 서로 잇지 않아요.
- 검은 선: 피코 3번 핀(GND) 옆 칸 j4 → 아래쪽 − 줄(GND). 이제 이 줄 전체가 GND예요.
- 메테인·천연가스·LPG MQ-5 꽂기: 다리 VCC · GND · AO를 아래쪽 j24 · j25 · j26에 차례로 꽂아요. 다리가 브레드보드에 바로 안 들어가면 암-수 점퍼선으로 같은 칸에 이어요.
- 빨간 선(5V 전원): 메테인·천연가스·LPG VCC 줄 i24 → 아래쪽 + 줄(5V)
- 검은 선(GND): 메테인·천연가스·LPG GND 줄 i25 → 아래쪽 − 줄(GND)
- 저항 10kΩ(색띠 갈색·검정·주황): g26 ↔ g28 (AO 다리 칸 → 나눔 칸 28열)
- 저항 20kΩ(색띠 빨강·검정·주황): i28 ↔ 아래쪽 − 줄(GND)
- 초록 선: 나눔 칸 h28 → 피코 31번 핀(GP26) 옆 칸 a11. 5V 신호가 3.3V 아래로 줄어 피코가 안전해요.
- 마지막 확인: ① 위쪽 + 줄(3.3V)과 아래쪽 + 줄(5V)이 서로 이어지지 않았나요? ② 모든 부품의 GND가 − 줄에 이어졌나요? ③ 5V 신호 다리는 저항을 거쳐 피코에 이어졌나요? ④ 긴 브레드보드는 + − 줄이 가운데에서 끊긴 것도 있어요(빨간·파란 선이 끊겨 있으면 짧은 선으로 이어요). ⑤ 그림과 한 칸씩 비교한 뒤 USB를 꽂아요.
| 모듈 핀 | 피코 핀 | 비고 |
|---|---|---|
| MQ-5 VCC | VBUS (40번) | 5V, 히터 약 0.16A |
| MQ-5 GND | GND (38번) | 공통 접지 |
| MQ-5 AO | GP26 (31번) | 10kΩ·20kΩ 분압 뒤 연결 |
| MQ-2 VCC | VBUS (40번) | 브레드보드 + 줄에서 함께 |
| MQ-2 GND | GND (38번) | 공통 접지 |
| MQ-2 AO | GP27 (32번) | 10kΩ·20kΩ 분압 뒤 연결 |
AO는 5V까지 올라갈 수 있어 각각 10kΩ(AO 쪽)·20kΩ(GND 쪽)으로 2/3로 낮춰요. 피코 ADC가 3.3V를 넘는 전압을 받지 않게 하려는 거예요. 배선 그림과 따라 꽂기는 MQ-5 하나만 보여 줘요. 비교용 MQ-2는 같은 모양으로 분압 저항 한 벌을 더 꽂아 GP27에 이어요. 분압 저항은 RL과 나란히 붙지만, 위 식에서 RL이 약분되듯 이 영향도 함께 사라져요. 회로를 그대로 두기만 하면 돼요.
히터 두 개가 동시에 약 0.31A를 써요. USB 2.0 포트는 보통 500mA까지라서, 전원이 없는 USB 허브를 거치면 모자랄 수 있어요. 컴퓨터 본체 포트나 충분한 5V 어댑터에 바로 꽂으세요.
코드
from machine import ADC, Pin
import time
VC = 5.0 # 센서 회로 전압(VBUS). 멀티미터로 재서 고치기
mq5 = ADC(Pin(26)) # MQ-5 AO → 분압 → GP26
mq2 = ADC(Pin(27)) # 비교용 MQ-2 AO → 분압 → GP27
def volt(adc):
s = 0
for i in range(16):
s += adc.read_u16()
return s / 16 * 3.3 / 65535 * 1.5
def ratio(v, v0):
# Rs/R0 = ((VC-V)/V) / ((VC-V0)/V0) : 부하 저항 RL이 약분돼 사라져요
if v <= 0 or v0 <= 0 or v >= VC:
return 0
return ((VC - v) / v) / ((VC - v0) / v0)
print("두 센서를 충분히 켠 뒤, 깨끗한 공기에서 기준을 재요")
b5 = 0
b2 = 0
for i in range(20):
b5 += volt(mq5)
b2 += volt(mq2)
time.sleep(0.5)
b5 = b5 / 20
b2 = b2 / 20
print(f"기준 전압 MQ-5 {b5:.3f} V, MQ-2 {b2:.3f} V")
while True:
r5 = ratio(volt(mq5), b5)
r2 = ratio(volt(mq2), b2)
print(f"DATA: mq5_ratio={r5:.3f}, mq2_ratio={r2:.3f}")
time.sleep(1)
volt(adc)는 어느 센서든 받아서 16번 평균한 AO 전압을 돌려줘요.ratio(v, v0)가 위의 Rs/R0 식이에요. 전압이 0이거나 VC보다 크면 계산이 안 되므로 0을 돌려줘요.- 기준(
b5,b2)은 10초 동안 20번 읽은 평균이에요. 두 센서 모두 같은 공기에서 잡아야 해요. - 출력
mq5_ratio,mq2_ratio가 1에서 얼마나 내려갔는지 비교하면 돼요.
값 해석과 보정
같은 소독제에 MQ-2 비율이 MQ-5보다 1에서 훨씬 멀리 내려갔다면, 그 기체에 대해 MQ-2의 저항 변화가 더 컸다는 뜻이에요. 이렇게 "원하는 기체에는 크게, 다른 기체에는 작게" 반응하는 정도를 선택성이라고 해요. 다만 두 센서의 자리, 거리, 공기 흐름이 같아야 공정해요. 한 번 잰 뒤 두 센서의 자리를 바꿔 한 번 더 재면 위치 차이를 걸러낼 수 있어요.
VC는 실제 VBUS 전압이어야 해요. 그런데 이 값이 조금 틀려도 비율은 크게 흔들리지 않아요. 예를 들어 V0=1.0V, V=2.0V일 때 VC를 5.0V로 넣으면 0.375, 4.9V로 넣으면 0.372예요. VC 오차보다 기준을 잡는 순간의 공기가 깨끗했는지가 훨씬 중요해요.
데이터시트에는 온도와 습도(33%RH, 85%RH)에 따라 Rs/Ro가 바뀌는 그래프도 있어요. 기준을 잡은 뒤 몇 시간이 지났다면, 비율이 1에서 조금 벗어난 것이 기체 때문인지 날씨 때문인지 구분해야 해요. 실험마다 기준을 다시 잡는 게 가장 간단한 보정이에요.
이 비율로 ppm을 구하려면 표준 가스로 보정해야 해요. 데이터시트도 1000ppm 수소나 LPG로 감도를 맞추고 RL을 20kΩ 근처(10~47kΩ)로 고르라고 권해요. 학교에서 할 수 있는 일은 아니에요.
자주 하는 실수
- 알코올에 약하게 반응하니 고장이라고 판단하기. 그렇게 설계된 센서예요. MQ-2와 함께 재 봐야 차이가 보여요.
- 모듈을 바꿔 끼우고 예전 기준을 그대로 쓰기. RL이 약분되는 건 같은 회로일 때만이에요. 모듈을 바꾸면 기준도 새로 잡아요.
- 히터 두 개를 전원 없는 허브에 연결하기. 전압이 내려가 히터 온도가 바뀌면 두 센서의 기준이 함께 흔들려요.
- 가스레인지 옆에서 요리 냄새로 시험하기. 데이터시트가 요리 연기에 덜 반응하게 만들었다고 밝힌 센서인 데다, 학생 실험에서 불을 쓰면 안 돼요.
이 센서로 잴 수 있는 탐구
1. MQ-5는 정말 알코올에 덜 반응할까 - 질문: 같은 소독제 증기에 MQ-5와 MQ-2의 Rs/R0는 얼마나 다르게 내려갈까? - 바꾸는 것: 센서 종류(MQ-5, MQ-2)와 두 센서의 자리(왼쪽·오른쪽 바꾸기) - 재는 것: 각 센서의 최소 Rs/R0(비율, 단위 없음) - 방법: 두 센서를 5cm 간격으로 세우고, 소독제 1방울을 묻힌 면봉을 두 센서 가운데 3cm 앞에 20초 둬요. 자리를 바꿔 다시 재고, 조건마다 3번씩 해요. 시도 사이에는 두 비율이 모두 0.95 위로 돌아올 때까지 기다려요.
2. 전원 전압이 다르면 기준도 달라질까
- 질문: 피코를 꽂은 USB 전원에 따라 깨끗한 공기의 AO 전압이 달라질까?
- 바꾸는 것: 전원(노트북 USB 포트, 5V 어댑터, 다른 컴퓨터 포트)
- 재는 것: 멀티미터로 잰 VBUS(V), 30분 켠 뒤의 기준 전압 b5(V)
- 방법: 같은 자리에서 전원만 바꿔 각각 30분 켠 뒤 기준을 기록해요. 전원마다 2번씩 해요.
3. 날마다 기준은 얼마나 같을까 - 질문: 같은 시각, 같은 자리에서 잡은 기준 전압이 5일 동안 얼마나 흔들릴까? - 바꾸는 것: 날짜(5일) - 재는 것: 30분 켠 뒤의 기준 전압(V), 그때의 기온(°C)과 습도(%RH) - 방법: 매일 같은 교시에 같은 책상에서 재고, 기준 전압과 습도를 산점도로 그려 관계가 보이는지 확인해요.
안전
- 도시가스, LPG, 부탄가스는 학생이 다루지 않아요. 반응을 보여 줄 필요가 있다면 교사가 환기된 곳에서 불 없이 아주 조금만 시연해요.
- 가스레인지나 버너를 켜는 실험은 하지 않아요.
- 히터가 두 개라 열도 두 배예요. 켠 채로 만지지 말고, 센서끼리 너무 붙이지 마세요.
- 이 장치는 가스누설경보기로 인증받은 제품이 아니에요. 집의 가스 누출 감시를 맡기지 마세요.