화염센서 실험

여기서는 화염센서를 사용하여 버저를 울리는 실험을 합니다.

화염 센서(또는, 적외선 수신 다이오드)는 로봇이 화재 원인을 찾기 위해 사용할 수 있는 센서로써, 특히 화염에 민감합니다. 실제 센서의 사진은 아래에 나와 있습니다. 화염 센서는 적외선이 화염에 매우 민감한 특성을 이용하고, 특수 적외선 수신 튜브를 사용하여 화염을 감지 한 다음 화염의 세기를 아두이노의 아날로그 포트로 입력받아 디지털 값으로 변환(ADC)합니다. 변환된 값이 100이 넘거나 같으면 버저를 울리게 하는 실험입니다.

최종 테스트를 하기 위해서는 라이터나 촛불 등이 필요합니다. 테스트시 화상이나 화재에 주의하셔야 합니다.

시리얼모니터로 디지털변환값을 확인 하고 감도(아날로그 출력과 비교하는 값)를 조절하면 됩니다.

이번 실험에 필요한 부품은 다음과 같습니다.


화염 센서 : 1개
액티브 버저  : 1개
10K 저항 : 1개

 

 

1) 액티브버 저(BUZZER) 연결
  버저의 +를 8번 포트에 연결하고, -를 GND에 연결합니다.
2) 화염 센서 연결
  화염센서(적외선 수신 다이오드)의 짧은 리드 단은 음극이고, 긴 리드 단은 양극입니다. 양극 단자를 5V에 연결한 다음 음극은 10K 저항에 연결하고 저항의 다른쪽 끝을 GND에 연결하고, 마지막으로 화염 센서의 음극 단자에서 아날로그 포트 A5에 연결하면 됩니다.

 

 

소스코드

아래는 소스코드입니다. 아두이노 IDE에 붙여넣기 하여 컴파일하고 업로드합니다.

//화염센서 실험

int flame=A5; //A5 아날로그 포트를 센서입력으로
int Beep=8; //8번 포트를 버저 출력으로
int val=0; //변수정의

void setup() 
{
  pinMode(Beep,OUTPUT); //출력모드
  pinMode(flame,INPUT); //입력모드

  Serial.begin(9600); //시리얼 전송속도 9600bps

  val=analogRead(flame); //아날로그포트 전압값 읽기
}
 
void loop() 
{  
  Serial.println(analogRead(flame)); //아날로그 값을 시리얼로 출력
  if((analogRead(flame)-val)>=100) //아날로그 값이 100보다 크거나 같은지 확인
    digitalWrite(Beep,HIGH); //버저 켜기
  else //100보다 작으면
    digitalWrite(Beep,LOW); //버저 끄기
}