float temperature;
int reading;
int lm35Pin = A0;
int ledPin = 12;
int ledPin1 = 13; // 13번 핀에 LED를 연결합니다.
int flame = 2; // 디지털 2번핀에 불꽃감지센서를 연결합니다.
int pirState = LOW; // 불꽃 감지 센서의 상태를 저장합니다.(처음 상태를 LOW로 설정)
int pirState1 = LOW; // 온도 감지 센서의 상태를 저장합니다.(처음 상태를 LOW로 설정)
int val = 0; // 센서 값을 읽기 위해 변수를 선언합니다.
int pinSpeaker = 10; // PWM 핀에 스피커 혹은 피에조 센서를 연결합니다.(digital 9, 10, or 11)
void setup() {
pinMode(ledPin1, OUTPUT); // LED 를 출력으로 설정합니다.
pinMode(flame, INPUT); // 불꽃 센서를 입력으로 설정합니다.
pinMode(pinSpeaker, OUTPUT); // 스피커를 출력으로 설정합니다.
Serial.begin(9600); // 시리얼 통신(9600)를 준비합니다.
analogReference(INTERNAL);
pinMode (ledPin, OUTPUT) ; // 온도 센서를 입력으로 설정합니다
}
void loop(){
val = digitalRead(flame); // 센서값을 읽어들입니다.
if (val == HIGH) { // 만약 값이 HIGH 일때,
digitalWrite(ledPin1, HIGH); // 13번 핀(보드에 내장되어 있는 LED) 를 켭니다.
playTone(300, 160);// 주파수 0 - 0 즉, 아무소리도 내지 않습니다.
delay(150);// 30ms 동안 대기.
{
reading = analogRead(lm35Pin);
temperature = reading / 9.31;
//온도가 30도 위로 올라가면 LED를 켠다
if(temperature > 30) {
digitalWrite (ledPin, HIGH);
} else {
digitalWrite (ledPin, LOW);
}
delay(1000);
}
if (pirState == LOW) {
// 센서의 상태가 LOW일때
Serial.println("Beware of fire.");
// 다음의 문구를 시리얼 모니터로 출력합니다.
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // LED를 끕니다.
playTone(0, 0);
delay(30);
if (pirState == HIGH){
//센서값이 HIGH 일때
Serial.println("FIRE!!!!");
// 다음의 문구를 시리얼 모니터로 출력합니다.
pirState = LOW;
}
}
}
// 경보음을 만들어 냅니다.
void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker,HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}
====================================================================
빨간색 친 부분 제가 따로 소스 넣은건데
이중 if 문으로 되게 해야되는데 현재 불꽃센서랑 온도센서하는데 둘이 가치 구동되여
온도센서만 구동되게 할려고 하는데 소스 수정좀 부탁드릴게요
그러니까 loop문 도는데 부분 수정해야되는데 어떻게 할지 모르겟어요
수정 부탁드려요 ㅠㅠㅠㅠㅠㅠㅠㅠ
|