Paso 4: uso.
Diviértase con esto. Es muy divertido ver lo que puedes hacer con el código.Iba a utilizar esta opción para activar LEDs de color rojo intenso para Halloween. (Ahorraré para otro momento.)
Entonces iba a desencadenar alguna fuente de sonido espeluznante como esta:
Se puede utilizar como alarma antirrobo pero luego tendría que poner un pedazo de papel alrededor para evitar falsas alarmas... Si lo utilizas como una alarma creo que se va a utilizar este código desde la Web de Arduino:
Enlace en: http://www.arduino.cc/playground/Code/PIRsense
/*
* //////////////////////////////////////////////////
* la salida de sentido //making del sensor PIR de Parallax
* //////////////////////////////////////////////////
*
* Interruptores LED según el estado de los sensores de salida pin.
* Determina el principio y el final de secuencias de movimiento continuo.
*
* Kristian Gohlke / gmail krigoo (_) (_) com / http://krx.at
* 3. Septiembre de 2006
*
* kr1 (hendidura) 2006
* publicado bajo una licencia de creative commons "Reconocimiento-NoComercial-CompartirIgual 2.0"
* http://creativecommons.org/licenses/by-nc-sa/2.0/de/
*
*
* El Sensor PIR de Parallax es un módulo de sensor de movimiento infrarrojo digital fácil de usar.
* (http://www.parallax.com/detail.asp?product_id=555-28027)
*
* Pin de salida del el sensor va a alto si el movimiento está presente.
* Sin embargo, incluso si hay movimiento va a la baja de vez en cuando,
* que no podría dar la impresión de movimiento está presente.
* Este programa se ocupa de este problema haciendo caso omiso de baja-fases más cortas que un momento dado,
* Suponiendo movimiento continuo está presente durante estas fases.
*
*/
/////////////////////////////
VARS
el tiempo nos da el sensor a calibrar (10 a 60 segundos según la hoja de datos)
int calibrationTime = 30;
el momento cuando el sensor produce un impulso de baja
tiempo unsigned int lowIn;
la cantidad de milisegundos que el sensor tiene que ser bajo
antes de asumir todo el movimiento se ha detenido
pausa larga unsigned int = 5000;
Boolean lockLow = true;
takeLowTime Boolean;
pirPin int = 3; el pin digital conectado a la salida del sensor PIR
int ledPin = 13;
/////////////////////////////
PROGRAMA DE INSTALACIÓN
void setup() {}
Serial.Begin(9600);
pinMode (pirPin, entrada);
pinMode (ledPin, salida);
digitalWrite (pirPin, LOW);
dar el sensor de tiempo para calibrar
Serial.Print ("calibración sensor");
para (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(".");
Delay(1000);
}
Serial.println ("hecho");
Serial.println ("SENSOR activo");
Delay(50);
}
////////////////////////////
LAZO
void loop() {}
if(digitalRead(pirPin) == HIGH) {}
digitalWrite (ledPin, HIGH); el led visualiza el estado de pin de salida de sensores
{if(lockLow)}
se cerciora de que esperamos una transición a la baja antes de cualquier salida de más:
lockLow = false;
Serial.println("---");
Serial.Print ("movimiento detectado en");
Serial.Print(Millis()/1000);
Serial.println ("sec");
Delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW) {}
digitalWrite (ledPin, LOW); el led visualiza el estado de pin de salida de sensores
{if(takeLowTime)}
lowIn = millis(); ahorrar el tiempo de la transición de alto a bajo
takeLowTime = false; Asegúrese de que esto sólo se hace en el inicio de una fase
}
Si el sensor está bajo más de la pausa dada,
asumimos que no hay movimiento más va a pasar
Si (! lockLow & & millis() - lowIn > pausa) {}
hace que este bloque de código es sólo se ejecuta después de
se ha detectado una nueva secuencia de movimiento
lockLow = true;
Serial.Print ("movimiento terminada en"); salida
Serial.Print((Millis() - pausa) / 1000);
Serial.println ("sec");
Delay(50);
}
}
}