아두이노2016. 3. 22. 15:29

MQ-2 센서는 LPG, 부탄가스, 프로판가스, 메탄가스, 알콜, 수소가스, 연기 등을 감지 할 수 있는 센서이다. 아두이노와 연결하여 가스 감지 시 피에조 스피커를 통해 알람을 울릴 수 있는 장치를 만들어 보겠다. 집안 가스렌지 근처에 두어서 가스누출을 미리 탐지하거나 연기도 검출이 되므로 화재감시장치 그리고 알콜도 감지가 가능하므로 간이 음주측정기로도 활용이 가능할 듯 하다.


가스감지부가 있는 윗면의 모습


MQ-2 라고 쓰여진 가스 감지부


뒷면의 모습 감도 조절을 위한 가변저항이 있다. 


핀배열은 사진 윗쪽부터 VCC, GND, DO(Digital Out), AO(Analog Out) 이다. 전원은 5V를 사용하며 가연성 가스가 센서부에 달라붙을 시 저항값이 낮아지는 원리를 이용하여 가스를 감지 한다고 한다. 출력값은 0~1023의 값을 출력하며 0~100%로 환산하고 적절히 조절하여 사용하면 된다.


■ MQ-2 데이터시트

MQ-2.pdf


연결



■ fritzing 파일

MQ-2_GAS_Detector.fzz


연결은 센서의 전원부(5V)를 연결하고 아날로그 출력단자를 아두이노의 A0 단자에 연결하였다. 그리고 가스 감지 시 경고음을 내어줄 피에조 스피커를 연결하였다.



소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
const int gasPin = A0; //가스센서 아웃을 아두이노 A0로 설정
 
 
void setup()
{
    Serial.begin(9600); //시리얼포트 설정
}
 
void loop()
{
    Serial.println(analogRead(gasPin)); //센서값을 시리얼모니터로 전송
    
    if (analogRead(gasPin) > 400)   // 가스 검출 시(자신의 센서 감도에 알맞게 조절필요)
    {                                     
        tone(12,2000,1000); // 피에조 ON (주파수 2000으로 1초간 울리기)  
    }  
 
    delay(1000);
}
 
cs


if 문 부분의 숫자는 시리얼 모니터를 보고 자신의 센서값에 맞도록 수정하면 된다. 나의 경우는 검출이 안될 시 400이하의 값이 나오고 라이터 등으로 가스를 뿜어주자 400 이상의 값이 나와서 400 이라는 검출값을 설정 하였다.


평상시 센서값


가스 탐지 시 센서값



라이터로 센서를 테스트 해 보았다. 염가(2000원~3000원 정도)의 센서임에도 가스탐지를 아주 잘 해준다. 한 가지 주의사항으로 전원연결 시 센서부가 조금 뜨거워진다. 화상을 입을 정도는 아니지만 주의 기울여서 다루어야 한다.

반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요

  1. 부저대신에 모터와 온도센서를달아서 일정온도가되면 모터가돌아가게한다거나

    일정 가스에 반응해서 모터가돌아가게하는것도 가능한가요?

    2016.04.27 20:12 [ ADDR : EDIT/ DEL : REPLY ]
    • 네 얼마든지 가능합니다. 모터를 구동하려면 아두이노 자체로는 전원이 부족할수도 있으므로 외부전원을 연결해서 온도센서에서 읽은 온도값으로 릴레이를 컨드롤 하고 릴레이로 모터를 구동하면 됩니다. 제 블로그에 온도센서글 http://deneb21.tistory.com/199 과 릴레이글 http://deneb21.tistory.com/222 을 참조하면 어렵지 않게 만들 수 있습니다.

      2016.04.27 21:16 신고 [ ADDR : EDIT/ DEL ]
  2. 답변 감사드립니다. 궁금한것 있으면 또 질문하러올게요 ㅋ

    2016.04.27 21:42 [ ADDR : EDIT/ DEL : REPLY ]
  3. 탐구생활

    잘봤습니다. 제것도 400으로 하니까 되네요. 감도는 최대치에 가깝게 조정하는게 좋은 것 같습니다

    2017.05.07 18:11 [ ADDR : EDIT/ DEL : REPLY ]
  4. 익명

    비밀댓글입니다

    2017.06.17 20:49 [ ADDR : EDIT/ DEL : REPLY ]
  5. 질문드려요

    아무래도 MQ - 2 센서도 그렇고 대부분의 아두이노 가스 센서는 히터 코일로 센서부를 가열해서 (반도체식이든 아니든) 전류가 흐를 수 있게 유도해주고 가스를 흘려주면 저항값이 변하는 걸로 센싱을 하는 듯 한데, 저 센서부가 보통 SnO2 같은 물질로 되어있더군요. 이 부분을 다른 물질로 된 소자 샘플로 바꿔 끼워서 해보는 것도 가능은 하려나 싶네요. Pt 전극 부분 등 연결하는 문제를 좀 생각해보긴 해야겠지만요.

    2017.09.09 17:42 [ ADDR : EDIT/ DEL : REPLY ]
  6. 질문드립니다

    제가 mq-2를 구입하고 fc-22보드에 끼워서 실험을 해보았는데 가스를 주입했는데도 불구하고 값변화없이 계속 0값만 뜨는 현상이 발생하였습니다 아두이노보드를 바꿔서 시도를 해보고 가스센서를 바꿔보아도 똑같이 0값만 떠서 어떤 문제인지 정확히 모르겠습니다 ㅠ ㅠ

    2017.10.30 15:33 [ ADDR : EDIT/ DEL : REPLY ]
    • 우선 핀을 바꿔보시고
      코딩도 살펴보시고
      그래도 안된다면 센서불량을 의심할 수 있겠네요

      2017.10.30 15:51 신고 [ ADDR : EDIT/ DEL ]
  7. 질문드려요 ㅠ ㅠ

    제가 실험을 해봤는데 핀을 바꿔서 A0~A3까지 해봤는데 시리얼 모니터를 확인해보니 핀을 꼽았을시 값이 0이뜨고 핀을 안꼽았을시 값이 뜨는데 거의 값이 일정한범위내에서 파도치듯이 변합니다. 간단한 코딩이라 코딩에는 문제없는거 같고 센서랑 센서보드 2개씩 샀었는데 다 바꿔서 해봐도 이런증상이 계속 나타나서 보드를 한번 바꿔볼까 생각중입니다 ㅠ ㅠ

    2017.10.31 00:56 [ ADDR : EDIT/ DEL : REPLY ]
  8. 익명

    비밀댓글입니다

    2017.11.21 16:19 [ ADDR : EDIT/ DEL : REPLY ]
    • 거의 모든 센서는 전압 등의 변화로 감지여부를 나타냅니다. 이 변화를 아두이노 등을 통해서 감지를 하고 경고음을 내는 등의 로직을 만들 수 있는거죠. 센서만 달랑 있다면 아무것도 못 합니다.

      2017.11.21 17:03 신고 [ ADDR : EDIT/ DEL ]
  9. 익명

    비밀댓글입니다

    2017.11.22 16:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 소스를 mcu 내부메모리에 넣는걸 말하시나요? mcu 종류에 따라 다르지만 대부분 pc와 usb serial 모듈을 연결하고 write 합니다. mcu마다 개발툴도 모두 다릅니다.

      2017.11.22 16:27 신고 [ ADDR : EDIT/ DEL ]
  10. 익명

    비밀댓글입니다

    2020.09.16 15:01 [ ADDR : EDIT/ DEL : REPLY ]
  11. 익명

    비밀댓글입니다

    2020.09.16 15:33 [ ADDR : EDIT/ DEL : REPLY ]
  12. 익명

    비밀댓글입니다

    2020.09.16 15:37 [ ADDR : EDIT/ DEL : REPLY ]
    • 익명

      비밀댓글입니다

      2020.09.16 15:38 [ ADDR : EDIT/ DEL ]