본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
학교의 모든 지식. SMwiki
검색
검색
보이기
로그인
개인 도구
로그인
로그아웃한 편집자를 위한 문서
더 알아보기
기여
토론
아두이노:MOS 센서
편집하기
문서
토론
한국어
읽기
편집
원본 편집
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
편집
원본 편집
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
파일 올리기
문서 정보
보이기
사이드바로 이동
숨기기
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{아두이노}} == 개요 == MOS(Metal–Oxide–Semiconductor) 센서는 금속 산화물 반도체 기반 가스 센서로, 표면의 산소 이온과 환원성 가스 반응으로 전도 전자의 수가 변하는 현상을 이용한다. 센서의 원리 등 특성은 [[가스센서]] 문서를 참고하자. ※ MOS 센서는 여러 가스에 반응하기 때문에, 절대 정량 측정용이 아니며, 가전·DIY용으로 주로 사용된다. ---- = 종류 = MOS 센서는 대부분 SnO₂, ZnO 등 산화물 반도체를 기반으로 하며, 제조사·모델에 따라 감도 대상 가스와 히터 온도, 출력 방식이 다르다. 대표적인 MQ 시리즈를 포함하여 다음과 같이 구분할 수 있다. == MQ 시리즈 == Metal Oxide Gas sensor. Hanwei Electronics가 개발하면서 MQ-1, MQ-2 … MQ-9 같은 모델명 체계를 만들었는데, 이게 범용적으로 쓰임. {| class="wikitable" !센서 !촉매/보조물 !민감 가스 |- |MQ-2 |Pt, Pd |LPG, H₂, CO, 연기, 알코올 |- |MQ-3 |Au |에탄올, 알코올 |- |MQ-5 |Pd |LPG, 천연가스, H₂ |- |MQ-7 |없음/특화 |CO |- |MQ-135 | |VOC, NH₃, NOx |} * '''일반 환원성 가스용''': MQ-2, MQ-5 등 * '''특정 가스용''': MQ-3(알코올), MQ-7(CO) * '''공기질 감지용''': MQ-135, MQ-136 = 활동예시 = * 센서 종류 변경 시 코드 대부분 재사용 가능 * 튜닝 포인트: 히터 시간, baseline 초기값, 임계값, 필터링 계수 * 출력은 절대값보다 상대 변화를 보는 것이 핵심 == MQ-5 == === 연결회로 === {| class="wikitable" !보드 !센서 !비고 |- |A5 |A0 | |- |5V |VCC | |- | |D0 |안씀 |} <syntaxhighlight lang="c++"> // MQ-5 센서 아두이노 예제 const int sensorPin = 50; // 센서 아날로그 출력 핀 int sensorValue = 0; // ADC 값 저장 float baseline = 0; // 초기 기준선 const int sampleCount = 100; void setup() { Serial.begin(9600); // 시리얼 모니터 시작 // 센서 예열 시간 Serial.println("Preheating sensor... wait 30 seconds"); delay(30000); // 30초 예열 // baseline 측정(공기질이 정상인 곳에서) long total = 0; for (int i = 0; i < sampleCount; i++) { total += analogRead(sensorPin); delay(50); } baseline = total / (float)sampleCount; Serial.print("Baseline (clean air): "); Serial.println(baseline); } void loop() { sensorValue = analogRead(sensorPin); float delta = sensorValue - baseline; // 간단 필터링 (노이즈 제거를 위해. 이동평균) static float filtered = 0; float alpha = 0.1; // 필터 계수 filtered = alpha * sensorValue + (1 - alpha) * filtered; Serial.print("Raw ADC: "); Serial.print(sensorValue); Serial.print(" | Delta: "); Serial.println(delta); // 임계값 비교 if (delta > 50) { Serial.println("Gas detected!"); } else { Serial.println("Air OK"); } delay(500); } </syntaxhighlight>
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에 포함된 문서:
틀:아두이노
(
편집
)
검색
검색
아두이노:MOS 센서
편집하기
새 주제