HW-072 화염감지 센서는 불, 가스, 화염을 감지하는데 사용된다.
![]() |
![]() |
핀기능 :
+ : DC 5V
G : 접지
A0 : 아날로그 출력
D0 : 디지털 출력
활용 분야 :
주로 가스누출 감지, 화재경보 시스템, 기타 안전 시스템에서 사용된다.
주요 기능 :
1. 화염 감지는 센서의 IR 적외선 스펙트럼에서 화염을 감지한다. 화염이 방출하는 특정 파장을 감지하여 화재를 인식한다.
2. 센서의 출력 신호는 아날로그 값과 디지털 값으로 출력된다. 아날로그 출력신호로 아두이노, 라즈베리파이 등 마이크로 컨트롤러를 제어할 수 있다.
실습 예제 :
HW-072 화염 감지센서를 사용하여 아두이노 화염감지 측정기를 만들어 보겠다.
작동원리는 화염 감지센서에 화염이 감지되면 아두이노에 연결된 부저모듈에서 경고음이 울리는과 동시에 LED경고등에 불이 켜진다. 또한 LCD 디스플레이에 센서의 측정 값을 출력하고 감지상태를 알려준다.
구성 요소 :
구성품으로는 아두이노 우노 R3, LCD1602 디스플레이 모듈, 부저모듈, LED 다이오드 등이 사용된다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
https://link.coupang.com/a/b2UFbQ
아두이노 HW-072 화염 센서 모듈 - 기타수공구 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2vSOT
ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://link.coupang.com/a/b2vTO0
아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
https://www.coupang.com/vp/products/7702597812?vendorItemId=86328689186&isAddedCart=
액티브/패시브 버저 모듈 - 기타전기설비부자재 | 쿠팡
쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
![]() |
![]() |
![]() |
HW-072 화염 감지센서 | 아두이노 우노 R3 | LCD 1602 디스플레이 |
![]() |
![]() |
![]() |
부저 모듈 | LED 다이오드 | 300옴 저항 |
회로 연결 :

회로 연결 방법은 아래의 표와 같이 연결한다.
아두이노 우노 R3 | HW-072 화염센서 | 부저모듈 | LCD1602 디스플레이 | LED 다이오드 |
+5V | + | VCC | ||
GND | G | G | GND | "-"핀 |
A0 | AO | |||
D11 | DO | |||
D9 | S | |||
D13 | "+"핀 | |||
A4 | SCA | |||
A5 | SCL |

회로 연결 후 아두이노 IDE에 다음과 같이 코딩을 작성한다.
코딩 작성시 LCD1602 디스플레이를 사용하였으므로 LiquidCrystal_I2C 라이브러리를 설치하여준다.
화염센서의 아날로그 출력을 아두이노 A0, 디지털 출력은 D11로 정의하였다. 다음 LED 다이오는 D13, 브저모듈은 D9번으로 설정하였다.
디지털 값은 변수 : (int flameDetectedDigital;)로, 아날로그 값은 변수 : (int flameValueAnalog;)로 정의하였다.
LED 핀은 출력으로(pinMode(ledPin, OUTPUT);), 화염센서는 입력으로 (pinMode(flameSensorDigitalPin, INPUT);) 설정하였다.
화염센서의 디지털 값을 읽어 기준 값보다 높으면 부저모듈과 LED 다이오드에 신호가 전달되고 기준 값보다 낮을 때는 모든 신호가 차단된다.
flameDetectedDigital = digitalRead(flameSensorDigitalPin);
if (flameDetectedDigital == HIGH) {
Serial.println("Flame Detected (Digital)!");
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000); // 부저를 1kHz로 설정하여 소리 출력
lcd.setCursor(0,1); // LCD 1행 2열에 출력
lcd.print("Flame : detection");
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin); // 부저 소리를 끔
Serial.println("No Flame (Digital).");
lcd.setCursor(0,1); // LCD 1행 2열에 출력
lcd.print("Flame : nodetection");
}
아날로그 값은 변수 : flameValueAnalog = analogRead(flameSensorAnalogPin); 로 읽은 다음 LCD1602에 전달하여 준다.
// 아날로그 값 읽기
flameValueAnalog = analogRead(flameSensorAnalogPin);
Serial.print("Analog Value: ");
Serial.println(flameValueAnalog);
lcd.setCursor(0,0); // LCD 1행 1열에 출력
lcd.print("Flame : ");
lcd.print(flameValueAnalog); // LCD에 센서값 출력
전체 코드 :
#include <LiquidCrystal_I2C.h>
int flameSensorDigitalPin = 11; // 디지털 핀
int flameSensorAnalogPin = A0; // 아날로그 핀
int flameDetectedDigital;
int flameValueAnalog;
const int ledPin = 13; // LED가 연결된 디지털 핀
const int buzzerPin = 9; // 부저 모듈이 연결된 디지털 핀
LiquidCrystal_I2C lcd (0x27,16,2); // LCD1602 hexa값, 2행 16열 설정
void setup() {
lcd.init(); // LCD 초기화
lcd.backlight(); // LCD 백라이트 켬
Serial.begin(9600); // 시리얼 통신 시작
pinMode(ledPin, OUTPUT); // LED 핀을 출력 모드로 설정
pinMode(flameSensorDigitalPin, INPUT); // 디지털 핀 입력 모드 설정
}
void loop() {
// 디지털 값 읽기
flameDetectedDigital = digitalRead(flameSensorDigitalPin);
if (flameDetectedDigital == HIGH) {
Serial.println("Flame Detected (Digital)!");
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000); // 부저를 1kHz로 설정하여 소리 출력
lcd.setCursor(0,1); // LCD 1행 2열에 출력
lcd.print("Flame : detection");
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin); // 부저 소리를 끔
Serial.println("No Flame (Digital).");
lcd.setCursor(0,1); // LCD 1행 2열에 출력
lcd.print("Flame : nodetection");
}
// 아날로그 값 읽기
flameValueAnalog = analogRead(flameSensorAnalogPin);
Serial.print("Analog Value: ");
Serial.println(flameValueAnalog);
lcd.setCursor(0,0); // LCD 1행 1열에 출력
lcd.print("Flame : ");
lcd.print(flameValueAnalog); // LCD에 센서값 출력
delay(1000); // 1초 대기
lcd.clear(); // LCD 클리어
}
위와 같이 코드 작성이 전부 끝나면 컴파일하고 아두이노에 업로드 하여주면 다음과 같은 출력 결과를 볼 수 있다.
출력 결과 :
https://www.youtube.com/watch?v=iua2kR0FFwU
'아두이노 센서 모듈 활용' 카테고리의 다른 글
조이스틱 모듈을 아두이노에 연결하여 LED 제어 하는법 (0) | 2024.06.23 |
---|---|
MQ-135 센서를 사용한 "아두이노 가스감지 측정기" (0) | 2024.06.19 |
YX5300 모듈을 사용한 아두이노 MP3 플레이어 (0) | 2024.05.29 |
0.91Inch 128X32 OLED 디스플레이 모듈 사용법 (0) | 2024.05.28 |
비 감지 센서를 사용한 "아두이노 자동 와이퍼" (0) | 2024.05.25 |