int ledPin = 13; // led
int inputPin = 2; // Sensor PIR
int val = 0; // variable para ver el estado del PIR
int pinSpeaker = 10; // Set up a speaker on a PWM pin (digital 9, 10, or 11)
int pirState = HIGH; // empezamos asumiento que no hay fuego
void setup() {
pinMode(ledPin, OUTPUT); // salida del LED
pinMode(inputPin, INPUT); // salida del SENSOR
pinMode(pinSpeaker, OUTPUT); // speaker
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin); // lee si hay fuego val=1/HIGH no hay fuego; val = 0/LOW si hay fuego
Serial.print("val : "); Serial.println(val);
if (val == LOW) { // no hay fuego
digitalWrite(ledPin, LOW); // turn LED OFF
playTone(0, 0);
delay(300); //era 300
if (pirState == HIGH){
// we have just turned of
Serial.println("No hay fuego");
pirState = LOW;
} else { //si hay fuego
digitalWrite(ledPin, HIGH); // turn LED ON
playTone(300, 160);
delay(150);
if (pirState == LOW) {
// we have just turned on
Serial.println("FUEGO DETECTADO");
pirState = HIGH;
}
}
}
}
// duration in mSecs, frequency in hertz
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);
}
}
//http://cursoarduinomega.blogspot.com.ar/2015/05/detector-de-fuego.html