PIR es un sensor infrarojo pasivo que podremos utilizar en muchos proyectos y ademas es muy barato, este es un muy buen proyecto para comenzar con el uso de sensores con un microcontrolador.
Aqui estan las partes que vamos a necesitar para este proyecto, ademas de estas partes tambien podemos agregar una bocina de alarma o una luz led mas grande o de otro color para hacerlo mas divertido.
- Arduino UNO o cualquier arduino
- Un sensor PIR o cualquier otro sensor de movimiento
- Un breadboard que es opcional
- Un led de cualquier color
- Cables de cualquier tipo
Aqui esta el diagrama de como van las conecciones al arduino:
En este caso use un breadboard para que sea mas facil en la ilustración y sea mas facil de ver para ustedes tambien, luego colocamos el PIR sensor en el breadboard.
Ahora que ya tenemos todas las partes juntas con el arduino solo nos queda cargar el sketch a nuestro arduino:
Sketch PIR alarma:
// Usamos un PIR sensor de movimiento
// Atomo Technologies atomogt.com
int ledPin = 13; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
int pinSpeaker = 10; //Set up a speaker on a PWM pin (digital 9, 10, or 11)
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input
pinMode(pinSpeaker, OUTPUT);
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
playTone(300, 160);
delay(150);
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
playTone(0, 0);
delay(300);
if (pirState == HIGH){
// we have just turned off
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}
// 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);
}
}
Después de cargar el sketch solo nos queda probar nuestro proyecto, aqui les dejo unas fotos de como quedo el mio:
Al pasar mi mano enfrente del PIR sensor la luz led se activa por unos segundos y luego se apaga si no registra ningún movimiento.
Bueno espero que les haya gustado este proyecto y que se pasen un buen rato experimentando con sensores en este caso con este sensor de movimiento, esperamos sus comentarios y sugerencias esten pendientes de nuestro proximo proyecto, hasta pronto!!!!!!
UwU
ResponderBorrar