Stap 4: gebruik.
Veel plezier met dit. Het is echt leuk om te zien wat u kunt doen met de code.Ik ging om dit te gebruiken om te activeren intens rode LEDs voor Halloween. (Ik dat bewaren voor een andere keer.)
Vervolgens ging ik om het activeren van sommige griezelig geluidsbron zoals deze te hebben:
U kunt het gebruiken als een inbraakalarm maar dan zou u moet zetten een stuk papier eromheen om te voorkomen dat valse triggering... Als u het als een alarm dat ik denk dat u zou willen gebruiken deze code uit de Arduino website gebruikt:
Link: http://www.arduino.cc/playground/Code/PIRsense
/*
* //////////////////////////////////////////////////
* //making zin van de Parallax PIR sensor de uitgang
* //////////////////////////////////////////////////
*
* Switches een LED overeenkomstig de stand van de sensoren uitgang pin.
* Bepaalt het begin en einde van de ononderbroken motie sequenties.
*
* Kristian Gohlke / krigoo (_) gmail (_) com / http://krx.at
* 3. September 2006
*
* kr1 (gespleten) 2006
* vrijgegeven onder een creative commons-licentie "Attribution-NonCommercial-ShareAlike 2.0"
* http://creativecommons.org/licenses/by-nc-sa/2.0/de/
*
*
* De Parallax PIR-Sensor is een makkelijk te gebruiken digitale infrarood beweging Sensormodule.
* (http://www.parallax.com/detail.asp?product_id=555-28027)
*
* De sensor de uitgang pins gaat naar hoge als beweging aanwezig is.
* Zelfs als beweging aanwezig is echter te laag van tijd tot tijd,
* die misschien de indruk geven geen beweging is aanwezig.
* Dit programma behandelt deze kwestie door het negeren van LOW-fasen korter is dan een bepaalde tijd,
* uitgaande ononderbroken motie is aanwezig tijdens deze fasen.
*
*/
/////////////////////////////
VARS
de tijd die we geven de sensor kalibreren (10-60 sec volgens het gegevensblad)
int calibrationTime = 30;
het tijdstip wanneer de sensor een lage impuls uitgangen
lang unsigned int lowIn;
het aantal milliseconden de sensor is laag
voordat we aannemen dat alle beweging is gestopt
lang unsigned int pauze = 5000;
Boole lockLow = waar;
Booleaanse takeLowTime;
int pirPin = 3; de digitale pin aangesloten op uitgang van de PIR-sensor
int ledPin = 13;
/////////////////////////////
SETUP
VOID Setup {}
Serial.begin(9600);
pinMode (pirPin, INPUT);
pinMode (ledPin, OUTPUT);
digitalWrite (pirPin, laag);
de sensor enige tijd te geven om te kalibreren
Serial.Print ("kalibreren sensor");
for (int i = 0; ik < calibrationTime; i ++) {}
Serial.Print(".");
delay(1000);
}
Serial.println ("done");
Serial.println ("SENSOR actief");
delay(50);
}
////////////////////////////
LOOP
void loop {}
if(digitalRead(pirPin) == HIGH) {}
digitalWrite (ledPin, hoge); de led visualiseert de sensoren uitvoer pin staat
if(lockLow) {}
zorgt ervoor dat we wachten op een overgang naar lage voordat verdere uitvoer plaatsvindt:
lockLow = false;
Serial.println("---");
Serial.Print ("bewegingsdetectie op");
Serial.Print(Millis()/1000);
Serial.println ("sec");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW) {}
digitalWrite (ledPin, laag); de led visualiseert de sensoren uitvoer pin staat
if(takeLowTime) {}
lowIn = millis(); opslaan van het tijdstip van de overgang van hoog naar laag
takeLowTime = false; Zorg ervoor dat dit gebeurt alleen bij het begin van een lage fase
}
de sensor wordt laag voor meer dan het bepaalde pauze,
Wij gaan ervan uit dat geen meer beweging gaat gebeuren
Als (! lockLow & & millis() - lowIn > onderbreken) {}
maakt zeker dit blok code wordt alleen uitgevoerd na opnieuw
een nieuwe reeks van beweging is gedetecteerd
lockLow = true;
Serial.Print ("motion eindigde op"); uitgang
Serial.Print((Millis() - onderbreken) / 1000);
Serial.println ("sec");
delay(50);
}
}
}