Alarma de detección de movimiento Arduino: 5 pasos

Alarma de detección de movimiento Arduino: 5 pasos

Tabla de contenido:

Anonim

Este Instructivo le mostrará cómo hacer una alarma de detección de movimiento usando un microcontrolador Arduino. Este Instructivo acompaña el video "Cómo hacer una alarma de detección de movimiento", que he incorporado.

Suministros:

Paso 1: Qué componentes necesitará

Para este proyecto de Arduino necesitarás:

1x Arduino Uno

1x sensor de movimiento PIR

1x LED

1x zumbador piezoeléctrico

1x Breadboard

1x cables de puente

También necesitará una computadora (sistema operativo mínimo XP) con el IDE de Arduino instalado.

Paso 2: Cableado del sensor PIR

El sensor PIR tiene tres pines:

- El de la izquierda es GND (debe estar conectado a un pin GND)

-El que está en el medio está FUERA (necesita estar conectado a un pin digital)

- El de la derecha es VCC (necesita estar conectado a 5v)

Conéctelo al pin digital 2 de su Arduino como muestra el diagrama.

Paso 3: Conectar el zumbador piezoeléctrico

El zumbador piezo tiene 2 pines:

- Uno es GND (debe estar conectado a un pin de tierra en el Arduino)

- Uno tiene que estar conectado a un pin digital, para que podamos decidir su tono

Paso 4: Conecta el LED

El LED tiene dos pines, el ANODO y el CATODO. El ánodo es más largo y siempre está conectado a voltaje positivo. El cátodo es más corto y siempre está conectado a voltaje negativo.

Conecte el ánodo al pin 13 y el cátodo al pin de GND que se encuentra a su lado. No tiene que ponerlo en el tablero, ya que no hay necesidad de hacerlo.

Paso 5: Sube el Sketch a tu Tablero Arduino

int inputPin = 2;

int pirState = LOW;

int val = 0;

int pinSpeaker = 10;

configuración vacía () {

pinMode (ledPin, SALIDA);

pinMode (inputPin, INPUT);

pinMode (pinSpeaker, OUTPUT);

Serial.begin (9600);

}

bucle de vacío () {

val = digitalRead (inputPin);

if (val == ALTO) {

digitalWrite (ledPin, HIGH);

playTone (300, 160);

retraso (150);

if (pirState == LOW) {

Serial.println ("¡Movimiento detectado!");

pirState = ALTO;

}

} else {

digitalWrite (ledPin, LOW);

playTone (0, 0);

retraso (300);

if (pirState == HIGH);

Serial.println ("¡El movimiento terminó!");

pirState = LOW;

}

}

}

void playTone (larga duración, int freq) {

duración * = 1000;

período de int = (1.0 / frecuencia) * 1000000;

long elapsed_time = 0;

while (tiempo transcurrido <duración) {

digitalWrite (pinSpeaker, HIGH);

delayMicroseconds (period / 2);

digitalWrite (pinSpeaker, LOW);

delayMicroseconds (period / 2);

elapsed_time + = (periodo);

}

}