Conectar PIR con arduino (Detector de movimiento)

Buenas!

Soy nuevo en este mundillo (también en el de la electrónica) y tengo algunas dudas respecto a los dispositivos PIR. Básicamente no se cómo conectarlo al arduino...

He estado haciendo búsquedas por el foro, y por el google, y la verdad es que no me aclaro. El PIR que tengo (Visonic NEXT DUO K9-85), tiene las siguientes características:

_ Tensión de alimentación: 9 a 16 VDC_

  • Corriente en STBY: 20 mA a 12VDC*
    _ Salida Alarma: Relé, 100 mA_
  • Salida TRB: Colector Abierto 39 Kohm, 50 mA max.*
  • Protección RFI: mayor de 20 V/m ( hasta 2GHz)*
  • Ajuste sensibilidad: 1 ó 2 eventos*
  • Temperaturas de funcionamiento: -10ºC hasta 50ºC*
  • Dimensiones: 94,5 x 63.5 x 49.0 mm*
  • Altura de montaje recomendad: 1,8 a 2,1 m.*

Lo que si que tengo claro, es que hay que conectar la salida marcada con N.C (Que es la que se abre y pasa corriente, cuando el PIR detecta movimiento), con una de las entradas digitales del arduino.

Pero no se si se puede hacer directamente, o hay que meter algún componente electrónico para que no se "queme" el arduino.

Precisamente... en el foro de habla inglesa, alguien preguntaba lo mismo: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1242993737
Y un usuario le contestó esto:

....
If you wire one side of the alarm contacts to 5V via a 10k pullup, and the other side to ground on the Arduino, then one of your digital inputs to the non-5V end of the pullup.
....

He estado buscando, y un pullup, se ve que es un tipo de resistencia, y 10k al parecer es un valor bastante alto, para que prácticamente no pase nada de intensidad.

Luego en un blog he visto este esquema de un sistema arduino (Con PIR más otros elementos):

Y por lo que se puede ver, no ha puesto ningún tipo de resistencia entre el PIR y la entrada digital del arduino... Así que he pensado que no todos los PIR's sean iguales... y tal vez tenga que ver con el voltaje que provenga de la salida marcada con N.C. ¿Esto es así? Porque en el esquema del PIR no me viene ninguna información de la salida del N.C...

En resumen, me podríais ayudar a conectarlo? :slight_smile: Que elementos necesito para no dañar el arduino?

Muchísimas gracias por vuestra ayuda!! Y perdón por el tocho... :blush:

Los PIR tienen todos la misma conexión , es decir salida por relé.Lo único que tienes que hacer es usar la salida del relé como si de un botón se tratara.

const int buttonPin = 2;     // the number of the pushbutton pin
 const int ledPin =  13;      // the number of the LED pin
 
// variables will change:
 int buttonState = 0;         // variable for reading the pushbutton status
 
void setup() {
   // initialize the LED pin as an output:
   pinMode(ledPin, OUTPUT);      
   // initialize the pushbutton pin as an input:
   pinMode(buttonPin, INPUT);     
}
 
void loop(){
   // read the state of the pushbutton value:
   buttonState = digitalRead(buttonPin);
 
  // check if the pushbutton is pressed.
   // if it is, the buttonState is HIGH:
   if (buttonState == HIGH) {     
    // turn LED on:    
     digitalWrite(ledPin, HIGH);  
   } 
  else {
     // turn LED off:
     digitalWrite(ledPin, LOW); 
  }
 }

Conexiones:

Conecta en lugar de un pulsador, una punta al común del relé y otra donde quieras, NC o NA, depende de la programación.
Un saludo

Madre mía que rapidez!! XD

Creo que ya he entendido lo que es el relé... Básicamente es como un interruptor, que si está en modo NC, siempre estará cerrado, y detectaré que hay movimiento (Con el PIR) cuando no está pasando voltaje por el circuito, ya que el relé se abre y el circuito se corta. ¿Es así?

Así que, si utilizo el NC, creo que cambiaría esto: (De todas formas es lo de menos, lo puedo probar yo mismo :))

if (buttonState == LOW)
{
// Como no hay voltaje, se detecta movimiento, y avisamos de alguna manera -> Encender LED
digitalWrite(ledPin, HIGH);
}

Luego, sobre lo último que me has comentado, de "una punta al común del relé y otra donde quieras", sería esto? (El esquema de arriba es justo el de mi PIR))

Y por último, el símbolo que aparece entre el cable que une el GND y una de las entradas digitales del arduino, es una resistencia verdad? Podrías decirme de que resistencia se trata para comprarla? :slight_smile:

Muchísimas gracias a9965!!

Hola historiasdi:
Te explico bien el rele: es un dispositivo electromagnético que sirve para aislar grandes cargas de voltaje y poder controlarlas con bajos voltajes(microcontrolador). Cuando no se le aplica ningún voltaje el relé tiene en contacto las patillas C(común) y NC(normalmente cerrado), si se le aplica voltaje entonces pasa a contacto C y NA(normalmente abierto).

No creas que solo se usan para sensores PIR, se usan en infinidad de sitios.¿Por qué el sensor PIR lo usa? Porque es el método más fácil de interconexión con,por ejemplo, una central de alarma.(debido a que grandes distancias de cable sigue funcionando,entre otras cosas).

La resistencia es de 10 KOhms. Te recomiendo que compres un surtido de varias, ya que son baratas y así siempre tendrás.

Tu dibujo es correcto, el otro que has puesto me parece muy lioso, dado lo fácil que es conectar un PIR(te abrás dado cuenta).

Un saludo, aquí estamos para ayudar!
:wink:

Si, me imaginaba que los relés servían para más cosas jeje Había visto alguna vez en otro dispositivo que los utilizaba, pero la verdad que no sabía muy bien para qué servían, ni cómo funcionaban. Pero vamos, con la explicación que me has dado me ha quedado muy claro :slight_smile:

Además con el gráfico, se ve aún mejor que el relé no hace que fluya ningún voltaje por el circuito (Es lo que pensaba al principio), si no que simplemente cierra el circuito al juntarse las 2 patillas de la derecha.

Ahora me queda comprar unas cuantas resistencias, y en cuando me vengan, podré probarlo todo XD

Voy a ver en qué tienda lo compro... jejje

Muchas gracias de nuevo!! Con gente como tú da gusto xD

Edito1:
Por si a alguien le sirve... He encontrado este manual que es bastante fácil de entender, y explica un poco de todo sobre los dispositivos que se le pueden incorporar al arduino, y con ejemplos para cada caso. Y muy importante, esquemas de cómo armarlo todo!!

http://wiki.medialab-prado.es/images/b/b8/3.-_Introducción_a_Arduino._Circuitos_básicos_de_entrada-salida.pdf
(Lo he sacado de aquí Blogs de Medialab-Prado | Otro sitio realizado con WordPress)

Edito2:

Servirían estas resistencias? http://www.ebay.es/itm/100-x-Resistencia-10K-Ohm-1-4w-5-Push-up-push-down-/200638787226?pt=LH_DefaultDomain_186&hash=item2eb700ee9a
Es que en la descripción pone esto: "Asemejan ser una resistencia estándar de 1/4w."
Vienen 100, así tendría para una temporadita xDD

Buenas!

Al final he comprado este kit, donde vienen resistencias de 2 tipos, las que me comentaste de 10k, y otras de 220:

http://www.ebay.es/itm/Power-LED-Matrix-keypad-Jumper-Wire-Breadboard-Arduino-Kit-294-/250957781366?pt=LH_DefaultDomain_0&hash=item3a6e3fd976

Y de paso vienen algunos elementos adicionales que necesitaré :slight_smile:

Esta bien. Las otras resistencias también te sirven. También puedes usar otras que no sean de 10k

"...Por si a alguien le sirve... He encontrado este manual que es bastante fácil de entender, y explica un poco de todo sobre los dispositivos que se le pueden incorporar al arduino, y con ejemplos para cada caso. Y muy importante, esquemas de cómo armarlo todo!!

http://wiki.medialab-prado.es/images/b/b8/3.-_Introducción_a_Arduino._Circuitos_básicos_de_entrada-salida.pdf
(Lo he sacado de aquí Blogs de Medialab-Prado | Otro sitio realizado con WordPress)...."

Amigo excelente información, muy útil para los que comienzan en este maravilloso mundo.....listo!! agregada a mi colección de material bibliográfico...

Gracias!!!!

a9965:
Esta bien. Las otras resistencias también te sirven. También puedes usar otras que no sean de 10k

Al final he hecho una búsqueda de los materiales más utilizados, y algunas piezas en concreto que necesitaré para algún proyecto. Tal vez me haya pasado un poco, pero así tengo para bastante tiempo. Lo he comprado todo de aquí:
http://www.taydaelectronics.com/

Es realmente muy barato, y no incluye el envío pero es bastante económico. 1.2$ mas o menos por cada 6$ de gasto.

Por si tenéis curiosidad este es el pedido que he hecho:

10K OHM 1/4W 1% Metal Film Resistor A-2203 20
1K OHM 1/4W 1% Metal Film Resistor A-2200 10
100 OHM 1/4W 1% Metal Film Resistor A-2245 10
470 OHM 1/4W 1% Metal Film Resistor A-2247 10
LED Display 7 Segment 3 Digit 0.28 inch Common Anode Red A-747 1
LED Display 7 Segment 2 Digit 0.30 inch Common Cathode Super Green A-754 1
3 x AA Battery Holder A-766 1
PUSH BUTTON SWITCH LATCHING ON/OFF DPDT 0.5A 50VDC 8x8mm A-5055 1
PUSH BUTTON SWITCH MOMENTARY DPDT 0.5A 50VDC 6x6mm A-867 3
40 Pin 2.54 mm Angle Single Row Pin Header A-199 2
40 Pin 2.54 mm Single Row Pin Header Strip A-197 2
40 Pin 2.54 mm Single Row Female Pin Header A-196 1
2x20 Pin 2.54mm Double Row Female Pin Header A-195 1
Photo Conductive Cell Resistor LDR 650nm RADIAL KE-10720 A-1528 2
1K OHM Linear Dual Taper Potentiometer A-1938 1
74HC595 8 bit Shift Register IC A-251 3
ULN2803A ULN2803 2803 TRANSISTOR ARRAY-8 NPN IC A-067 1
LM7805 L7805 7805 Voltage Regulator IC 5V 1.5A A-179 1
1N4007 1A 1000V Rectifier Diode A-155 5
2N3904 NPN General Propose Transistor A-111 5
2N3906 General Propose PNP Transistor A-117 3
BC547 Transistor NPN 45V 0.1A A-137 2
22pF 50V Ceramic Disc Capacitor A-523 10
1uF 50V 105C Radial Electrolytic Capacitor 5x11mm A-4505 5
10uF 50V 105C Radial Electrolytic Capacitor 5x11mm A-4554 5
100uF 16V 105C Radial Electrolytic Capacitor 5x11mm A-4514 5
2N2222A 2N2222 NPN Transistor 0.8A 40V TO-18 A-113 2
AWG 22 Green Hook-Up Wire 1FT (30cm) Stranded A-4992 1
AWG 22 Blue Hook-Up Wire 1FT (30cm) Stranded A-4993 1
PIEZO ELECTRONIC TONE BUZZER ALARM 1.5-28V PCB A-5019 1

ajtorres:
"...Por si a alguien le sirve... He encontrado este manual que es bastante fácil de entender, y explica un poco de todo sobre los dispositivos que se le pueden incorporar al arduino, y con ejemplos para cada caso. Y muy importante, esquemas de cómo armarlo todo!!

Blogs de Medialab-Prado | Otro sitio realizado con WordPress
(Lo he sacado de aquí Blogs de Medialab-Prado | Otro sitio realizado con WordPress)...."

Amigo excelente información, muy útil para los que comienzan en este maravilloso mundo.....listo!! agregada a mi colección de material bibliográfico...

Gracias!!!!

No hacía falta darlas compañero :wink:

Saludos nuevamente.....

Yo también realicé mi primer pedido (para comenzar con Arduino) en esta tienda con una lista mas o menos parecida a la tuya...puedo recomendarte algunos otros componentes para realizar pruebas y experimentos tales como:

LM335 Precision Temperature Sensor -40C TO 100C IC
LM35DZ LM35 CENTIGRADE TEMPERATURE SENSOR IC
FR2S1020 Reed Switch 1.5A 10-20 A/T SPST-NO 200 VDC/VAC FR2S1020-0520
BTA06-600C BTA06-600 Triac 600V 6A
BT136 BT136-600 BT136-600E Triac 600V 4A
Reflective Optical Sensor 950nm TCRT5000L
L298N L298 DUAL FULL BIRDGE DRIVER IC
10K OHM Linear Taper Potentiometer
4N35 Optocouplers Phototransistor 30V IC
CONDENSER MICROPHONE 2.2K OHM 1.5V

También puedo recomendarte que visites la pagina www.buyincoins.com aquí encontraras gran variedad de módulos (Shields) para Arduino a precios realmente tentadores. Esta es una tienda ubicada físicamente en China, no cobran gastos de envío pero dichos envíos tardan mas o menos en llegar (puede que lleguen a tardar un poco mas de un mes). Algunas de las cosas interesantes que he comprado en este sitio (aun no me han llegado)

9G Micro Servo for RC Helicopter Plane Futaba Hitec

5V Stepper Motor 28BYJ-48 With Drive Test Module Board ULN2003 5 Line 4 Phase

DIY Prototype Paper PCB Universal Experiment Matrix Circuit Board 5x7cm (10Pcs PCB Universal Board)

New High Quality 4 x 4 Matrix Array 16 Key Membrane Switch Keypad Keyboard (Matrix 16 Key Membrane)

Ultrasonic Sensor Distance Measuring Module Transducer (Ultrasonic Distance Measuring Module)

New 5V 8 Channel Relay Module Board for Arduino PIC AVR MCU DSP ARM Electronic (8 Channel Relay Module)

MMA7361 Angle Sensor Inclination Accelerometer Acceleration Module Arduino
Speed (MMA7361 Accelerometer Module)

Pyroelectric Infrared PIR Motion Sensor Detector Module

RPR-220 Slotted Reflective Photoelectric PhotoSensor Opto Switch 1-Channel

New High BMP085 Barometric Digital Pressure Sensor Module Board For Arduino

Yo también he comprado de buyincoins bastantes cosas! Incluídas algunas para arduino XD
Precisamente el último pedido me vino en tan solo 9 días. Todo un record!!! Que no creo que se vuelva a repetir... jajaj

El pedido de la otra tienda, aún tardará en llegar, pero me estoy desesperando, y quiero comenzar ya a hacer pruebas con el detector de movimiento... Así que de paso que tenía que comprar una caja para el arduino (carísimas por cierto), he comprado unas cuantas resistencias de 10K de una tienda española. Espero que el lunes o el martes ya tenga el pedido en casa...

La dirección de la tienda online es www.electan.es y está en Alcoy, bastante cerca de donde yo vivo.

Y si tenéis curiosidad, la caja que he comprado es esta: Caja para Arduino
10€+IVA vale la jodida ...

No he encontrado ninguna más "barata", salvo en Arduino Project Enclosure - PRT-10088 - SparkFun Electronics. Son 2.7€ más barata que la española, pero bueno... quería que me llegara pronto.

Un saludo!

Buenas a todos de nuevo!

Estoy probando el PIR con el arduino, ya que ya tengo todo lo que me hacía falta para ponerlo en marcha. Pero hay un problema... Y es, que no detecta muy bien la presencia...

Aparentemente el programita para arduino, si que funciona. Cuando no hay nada de movimiento, el LED siempre parpadea, y cuando me pongo a hacer movimientos muy exagerados delante del PIR, entonces el LED se mantiene fijo. Este es el programita:

const int buttonPin = 31; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed.
// if it is, the buttonState is LOW. Normalmente cerrado. No hay presencia:
if (buttonState == HIGH)
{
// turn LED on:
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(2000);
Serial.println("No hay presencia. NC\n");
}
else {
// turn LED off:
digitalWrite(ledPin, HIGH);
Serial.println("Siiii hay presencia. NA\n");
}
}

El tema es que tengo que hacer movimientos muy cercanos al PIR, y muy exagerados, para que me detecte el movimiento. Lo único que se me ocurre para que no funciona, es que la resistencia no sea la correcta. ¿Qué pensáis? La que tengo es de 10K. ¿Hay algún otro valor más recomendable? He seguido el mismo esquema que dibujé más arriba.
Aunque la verdad que no le veo sentido que falle por eso...porque los 5V le van a seguir llegando igualmente. La resistencia solo afecta al GND. ¿no?

O si no, el fallo es del PIR. Tan moderno es. que supuestamente es inmune a animales, pero no detecta ni a personas...

Os dejo una imagen bastante aclarativa de cómo funciona el PIR:

Tengo conectado el PIN de vía(WALK test remote), para que el TEST sea manual, y sin conectar ni a GND ni a 12V (La salida de TEST), para que supuestamente, esté desactivada esta función.
Luego también tengo conectado el PIN de COUNT1 (1-EVENT FAST RESPONSE) que es el modo de alarma más estricto (salta más a menudo), y por último, también tengo conectado el PIN de 12 (MODEL 12m), que es la distancia. También lo he probado con el de 9 y 6 metros, y funciona igual de mal...

Y por último, os muestro las características del aparato:

Que por cierto... he visto que la salida del relé, puede funcionar con hasta 100mA, y si mal no recuerdo los pines del arduino dan 40mA...A ver si va a ser eso??

Agradecería mucho que me pudierais ayudar un poco mas :blush:

Muchas Gracias!

Hola de nuevo:
Veo que has conectado mucho cable.Para aprender como funciona, primero a lo básico. Como ya te dije es desde la salida del relé. Si sigue funcionando mal creo que es cosa del pir, llevara algún potenciometro o algún switch para la sensibilidad.

Hola!

No…si no he conectado casi ningún cable… Lo que comento en mi anterior mensaje sobre los pines, son los propios pines que tiene el PIR. Viene una cosita de plástico, para unir pines de 2 en 2, como el que viene en los discos duros del PC para seleccionar que hagan de máster o esclavo.

Básicamente tiene 3 opciones este PIR:

1- Intensidad de la detección. (Baja o alta) → EVENT
2- Tipo de zona de test. Sirve para activar que el TEST siempre esté activado, o bien se active o desactive mediante una salida de TEST (Viene en el dibujo, está a la izquierda, junto a TAMP). Aunque no tengo muy claro que es lo que hace cuando está activado el TEST. → WALK TEST REMOTE
3-Distancia de detección: 6,9 o 12 m. → MODEL

Respecto al arduino, únicamente hay 3 cables conectados:
-GND del arduino + una resistencia de 10k, a una parte del relé del PIR
-Desde el cable anterior conectado al relé, antes de encontrarse con la resistencia de 10k, sale otro cable hacia el pin 31 del arduino.
-Desde la otra parte del relé, a los 5V del arduino.

También hay otro cable que va desde TEST del PIR, a otro GND del arduino. Pero también lo he probado sin ese cable, y funciona exactamente igual.

Te paso unas fotillos para que se entienda mejor! :slight_smile:

Por cierto, has visto en las especificacions dónde pone: “Alarm OUPUT: NC, up to 100mA” ?? Puede que con los 40mA que creo que da el PIN de 5V del arduino, no sea suficiente para que el Relé se abra siempre que deba? (Es decir cuando detecta presencia) Es que si necesitara más… tal vez algunas veces se abra, y otras no… Por eso, no siempre funciona bien la detección de movimiento… ¿Tu que piensas?

Métele 12V al PIR.
Lo que dices de la salida del arduino no tiene nada que ver.Estas usando el pin como entrada,es decir, como un pulsador. El relé no se enciende con el Arduino, el PIR se encarga de ello.

Es verdad, no tiene sentido ahora que lo pienso… :cold_sweat:

Y los 12V del PIR si que se los doy, tengo un adaptador de 12v 1A, que lo conecto al adaptador negro y verde que se ve en la imagen. Cuando lo conecto, se ve que el PIR arranca, porque se encienden 2 LEDS de colores, y cuando termina de calibrarse, se apagan. Y entonces es cuando ya detecta presencia. Pero solo si estás a pocos cm del sensor, y haces gestos muy exagerados…

Entonces, qué estará pasando? Porque si la resistencia está bien, y todas las conexiones son correctas… :astonished: ¿Puede que esté roto el sensor? O igual necesita que esté a mucha altura… no sé…

Muchas gracias por tu ayuda!! :slight_smile:

Prueba esto:
-Quita todos los cables del PIR
-No pongas nada que lo obstaculice
-Ahora ponle alimentación para que haga la calibración
-Cuando termine la calibración comprueba si funciona bien

Si después de esto todo sigue como dices, va a ser el PIR.

Pero compruebalo con el led del PIR,no le conectes nada

boa tarde eu estou a fazer um projeto para a escola e a intenção e ligar um arduino a 6 sensores de movimento. Quando esses sensores detectarem movimento a intenção e produzir ruído.Antes dos sensores sentirem movimento vai existir musica de fundo como e possível fazer isso? obrigado