Fisa maskin (med Linkit en) (7 / 7 steg)
Steg 7: Kod genomgång
Koden här hålls extremt enkel. Du kan enkelt göra det svårare genom att lägga till flera pruttar, timing dem, rotera dem på måfå, etc.
Koden som presenteras här bygger till stor del på dessa två exempel:
http://www.seeedstudio.com/wiki/Grove_-_PIR_Motion...
och http://www.seeedstudio.com/wiki/Grove_-_PIR_Motion...
/ * Automatisk pruttar
* sound generator som spelar slumpvis fart ljud när rörelse detekteras
* För användning med Mediatek Linkit en och en Grove PIR rörelsesensor
* Du behöver också något liknande en talare att spela långt buller på
*/
#include < LAudio.h >
#define MOTION_SENSOR 2 //Use stift 2 att ta emot signalen från modulen
void setup() {
LAudio.begin();
Serial.BEGIN(115200);
LAudio.setVolume(6);
pinMode (MOTION_SENSOR, indata);
LAudio.playFile(storageFlash,(char*)"19.mp3");
}
void loop() {
IF(isPeopleDetected()) {//if den upptäcker de rörliga människorna?
Serial.println ("person upptäcks!");
LAudio.playFile(storageFlash,(char*)"19.mp3");
Delay(2000);
}
}
Boolean isPeopleDetected()
{
int sensorValue = digitalRead(MOTION_SENSOR);
IF(sensorValue == low) //if sensor värdet är hög?
{
return true; //yes,return true
}
annat
{
return false; //no,return falskt
}
I setup-funktionen audio koden initieras, en volym av "6" är markerat (6 är den högsta), pinMode för rörelsesensorn är inställd som indata (vilket innebär vad är ansluten till det klämmer fast kommer att ställa den till hög eller låg). Sedan spelar mp3-filen.
Avsnittet "isPeopleDetected" funktionen anropas för att se om motion har upptäckts och, om filen spelas i slingan.
isPeopleDetected har sin logik så en "LOW" pin läsning innebär att det finns rörelse. Verk för IR-avstånd avbryta sensorn men inte för PIR detektor rörelsesensorn. För att du måste ändra låg till hög.