domingo, 28 de junio de 2015

Crea una alarma de movimiento con Arduino.

Hola amigos!!! Hoy les traemos un nuevo proyecto usando un arduino y un sensor de movimiento o PIR para crear una alarma que se activara al detectar movimiento.
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!!!!!!

SHARE THIS

1 comentario: