Arduino Uno 로 가스센서 (MQ-5 & MQ-7 & MQ-2)를 사용해 1602 캐릭터 LCD에
가스감지시 가스 출력값을 표시해 보고 부저로 경고를 울려보는 프로젝트 입니다
시중에는 다양한 종류의 가스센서가 유통되고 판매되고 있습니다.
그중에 아두이노와 호환 가능한 MQ 시리즈를 사용해서 간단하게 가스를 감지해서 출력값을 1602 캐릭터 LCD에 표시해 보는 프로젝트 입니다
MQ 시리즈는 다양한 모델이 있으며 각각의 모델들은 다양한 가스를 측정할수 있으며 측정범위도 모델별로 차이가 있습니다
어떤 모델이 어떤 종류의 가스를 측정할수 있는지는 아래 사양표를 참조 하도록 합시다
테스트에서는 MQ-5 와 MQ-7, MQ-2 가스센서를 사용하였습니다
MQ-5 가스센서는 200~10000ppm 농도의 LPG, LNG, 도시가스등을 측정할수 있습니다
MQ-7 가스센서는 10~1000ppm 농도의 일산화 탄소 (CO-gas)를 측정할수 있습니다
MQ-2 가스센서는 200~5000ppm 농도의 LPG, 프로판, 부탄, 메탄 가스등을 측정할수 있습니다
아주 정밀한 센서는 아니지만 저렴하고 사용하기 간단하기 때문에 아두이노로 테스트 하기에 적합합니다
사용된 부품
Arduino Uno R3 (Italy)
1602 Character LCD - (QAPASS 1602A)
1602 Character LCD - (SD1602VBWB-XA)
LC1621-SMLYH6
가변저항 10K (Ohm)
점퍼케이블
사용된 키트
1602 LCD 핀맵 확인
<LC1621-SMLYH6 의 치수도 및 핀맵> LC1621-SMLYH6 은 기본 Standard 핀구성 입니다
<SD1602VBWB-XA>의 핀구성 (SD1602VBWB-XA)는 핀맵은 동일하나 순서가 15, 16, 1, 2, 3... 14 순 입니다>
구성 배선도
사용된 예제소스
주의사항
배선시 LCD의 핀맵을 잘 확인 해야 합니다
위에 첨부된 1602LCD 핀맵을 확인 후 배선 하도록 합니다
백라이트는 들어 왔는데 문자 출력이 안되는 경우 가변저항을 돌려서 조정할 수 있습니다
LCD가 그래도 화면이 흐리거나 백라이트가 약하다면 5V USB 전원대신 소스 업로드 후 아답터(7~12V 권장)를 연결해
전원 공급을 해주면 화면이 잘 나올수 있습니다
사용된 예제소스에서 "LiquidCrystal.h" 이라는 라이브러리를 추가하는 명령어가 있는데
LiquidCrystal.h 은 아두이노 IDE를 설치하면 기본으로 포함되어 있습니다
이점 숙지하고 넘어 가도록 하겠습니다
만약 가스센서에 가스가 감지가 되지도 않았는데 녹색 동작 LED가 계속 점등되어있거나, LCD의 출력값이 변화가 없거나
가스센서가 정상동작 되지 않는다면 이는 전원의 A(전류)의 문제입니다
LCD가 A(전류)를 많이 소비하기 때문에 가스센서까지 같이 연결해 주면 A(전류) 부족으로 가스센서가 제대로 동작하지
않을 수 있습니다
이 경우에는 가스센서의 VCC, GND 전원을 별도로(외부전원 또는 다른 아두이노 보드를 1개더 준비해서 전원을 공급해주는 등)
5V로 따로 공급해주고, AO만 기존의 아두이노의 A4에 연결해주면 해결할 수 있습니다
프로젝트 동영상
MQ-5 가스센서를 이용한 테스트 (1602LCD에 가스 감지시 출력값이 증가하는것을 확인할수 있습니다)
MQ-7 가스센서를 이용한 테스트 (1602LCD에 가스 감지시 출력값이 증가하는것을 확인할수 있습니다)
이번에는 1602 캐릭터 LCD에 출력값을 표시하고 부저로 경보를 울리게 하는 테스트입니다
MQ-2 가스센서 를 사용하였으며 추가로 Active Buzzer 를 배선해 줍니다
구성배선도
사용된 예제코드
기본 배선은 동일하며, 추가로 부저를 5번핀에 배선해 줍니다
예제코드를 살펴보면
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
LiquidCrystal.h 라이브러리를 사용합니다
int potPin = A4;
int buzzer = 5;
가스센서 핀은 A4, 부저 핀은 5번 입니다
if (potValue>600)
{
digitalWrite(5,HIGH);
delay(1000);
}
if (potValue<600)
{
digitalWrite(5,LOW);
delay(1000);
}
출력값이 600이상이면 부저가 HIGH 가 되서 울리게 되고
600 이하게 되면 부저가 LOW 로 꺼지게 됩니다
본 테스트에서 MQ-2 가스 센서를 사용해서 테스트 할때 꼭 주의 할 점이 있습니다
MQ-2 가스센서는 위 이미지 처럼 2가지 버전으로 생산되고 있습니다
버전에 따라서 기본 출력값에 약간의 차이가 있습니다
때문에 일단은 위 첨부된 Gas Sensor BuzzerGas Sensor 1602 LCD_Buzzer 예제코드를 수정없이 그냥 컴파일 업로드 해 준 다음 MQ-2 가스센서를 배선하고
아두이노 IDE의 시리얼 모니터로 가스누출 없이 미누출일때 출력값이 얼마가 나오는지를 확인해 줍니다
출력값이 450 정도로 나오면 위 처럼
if (potValue>600)
if (potValue<600)
이런식으로 수정해 주어서 가스가 감지 되었을때 600을 넘겨 부저가 울리도록 세팅해 주면 됩니다
만약 가스센서에 가스가 감지가 되지도 않았는데 녹색 동작 LED가 계속 점등되어있거나, LCD의 출력값이 변화가 없거나
가스센서가 정상동작 되지 않는다면 이는 전원의 A(전류)의 문제입니다
LCD가 A(전류)를 많이 소비하기 때문에 가스센서까지 같이 연결해 주면 A(전류) 부족으로 가스센서가 제대로 동작하지
않을 수 있습니다
이 경우에는 가스센서의 VCC, GND 전원을 별도로(외부전원 또는 다른 아두이노 보드를 1개더 준비해서 전원을 공급해주는 등)
5V로 따로 공급해주고, AO만 기존의 아두이노의 A4에 연결해주면 해결할 수 있습니다
프로젝트 동영상
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 Nokia5110 84X48 그래픽 LCD 모듈과 Joystick 모듈을 사용해서 LCD에 출력된 메뉴 선택해 보기 (0) | 2016.12.29 |
---|---|
Arduino Uno 로 조이스틱 쉴드를 사용해서 3개의 SG90 서보모터 제어하기 (0) | 2016.12.24 |
Arduino Mini & Pro Mini 사용법 알아보기 & stk500_getsync 에러 해결하기 (0) | 2016.12.01 |
Arduino Uno 로 FSR 압력센서 를 사용해 압력값 출력해 보기 (0) | 2016.11.07 |
Arduino Uno 로 1602 캐릭터 LCD를 사용해 LCD에 한글 문자 출력해 보기 (0) | 2016.10.26 |
댓글