불꽃감지 센서는 포토 트랜지스터라고 불린다. 기본적으로 빛을 받으면 전기에너지로 변환시켜 증폭하는 작용을하며 빛을 많이 받을 수록 생성되는 전기 에너지가 커진다. 불꽃도 결국은 빛 이므로 이를 감지하여 화재여부를 감지하는 센서로 사용이 된다. 포토트랜지스터에 불꽃이 감지되면 피에조부저를 통하여 경보음을 내도록 만들어 보자 짧은 단자가 콜렉터(Collector)이며 긴 단자가 에미터(Emitter)이다. 포토트랜지스터 데이터시트:
아두이노와의 연결은 다음과 같다. 콜렉터는 5V단자에 에미터에는 GND단자에 연결하는데 10㏀의 저항을 사용하였다. 프리징 파일:
##소스## if문의 값은 자신의 사용환경에 따라 적절히 감도를 조절할 필요가 있다.
##결과## int led = 13; // LED 핀 번호 13 int flame = 7; // 불꽃감지 센서 핀 번호 7 int state = 0; // 불꽃감지 센서의 상태 값 저장 변수 void setup() { pinMode(led, OUTPUT); // LED를 출력으로 설정 pinMode(flame, INPUT); // 불꽃 감지 센서를 입력으로 설정 Serial.begin(9600); // 시리얼 통신, 속도는 9600 } void loop() { state = digitalRead(flame); // 불꽃 감지 센서값 입력받음 digitalWrite(led, LOW); // 초기 LED값을 0FF로 설정해주기 if (state == 1){ // 불꽃감지 센서의 값이 1일때(불꽃이 감지 되었을 때) Serial.println("ON"); // 시리얼 통신에 센서값 출력해 주기. digitalWrite(led, HIGH); // LED ON delay(100); } else { // 불꽃감지 센서의 값이 0일때 (불꽃이 감지 되지 않았을 때) Serial.println("OFF"); // 시리얼 통신에 센서값 출력해 주기. digitalWrite(led, LOW); // LED OFF } delay(100); } |