Stap 9: Complete software voor de PIR-sensor
Na ervoor te zorgen dat alles werkt, kunnen wij de complete software program. Ik gebruikte een mooie slaap module om accustroom besparen, hier is bibliotheek Sleep_n0m1.
De software is vrij ongecompliceerd:
-bij initialisatie, de bi-color LED knippert 10 keer
-na dit moment PIR sensor volledig operationeel is
-Wanneer PIR sensor een wijziging detecteert, het zal wakker worden de Arduino en Arduino zal de focus signaal geven aan de camera (1 seconde), dan zal het 0.5 seconden en dan geven het signaal van de sluiter (0.5 seconden)
-camera een foto zal nemen.
******************************************************************************************
#include Sleep_n0m1.h
Milliseconden van signaal activering
Const int FOCUS_TIME = 1000;
Const int SHUTTER_TIME = 500;
Digitale uitgang pinnen
Const int FOCUS_LED = 7;
Const int SHUTTER_LED = 6;
Digitale ingang pinnen
Const int PIR_IN = 8;
Digitale uitgang pinnen (te MOS-FET-transistoren)
Const int FOCUS_ON = 4;
Const int SHUTTER_ON = 9;
Slaap de slaap;
Één keer instellen
VOID Setup {}
pinMode (FOCUS_LED, uitvoer);
pinMode (SHUTTER_LED, uitvoer);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
pinMode (FOCUS_ON, uitvoer);
pinMode (SHUTTER_ON, uitvoer);
digitalWrite (FOCUS_ON, laag);
digitalWrite (SHUTTER_ON, laag);
pinMode (PIR_IN, INPUT);
delay(2000);
Turn-on rood, groen en oranje LED
voor 10 keer - 1e keer
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
2e keer
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************3
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************4
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************5
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************6
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************7
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************8
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
//****************9
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
10e tijd en meer dan
digitalWrite (FOCUS_LED, laag);
delay(500);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, laag);
delay(500);
digitalWrite (SHUTTER_LED, hoge);
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
}
void loop {}
sleep.pwrDownMode(); instellen slaapstand
sleep.sleepInterrupt(0,RISING); (nummer 0 (of pin 2) onderbreken, staat op stijgende onderbreken)
doFocus();
doShot();
delay(1000);
}
Focus signaal
ongeldig doFocus() {}
digitalWrite (FOCUS_LED, laag);
digitalWrite (FOCUS_ON, hoge);
vertraging (FOCUS_TIME);
digitalWrite (FOCUS_ON, laag);
digitalWrite (FOCUS_LED, hoge);
delay(200);
}
Signaal van de sluiter
ongeldig doShot() {}
digitalWrite (SHUTTER_LED, laag);
digitalWrite (SHUTTER_ON, hoge);
vertraging (SHUTTER_TIME);
digitalWrite (SHUTTER_ON, laag);
digitalWrite (SHUTTER_LED, hoge);
delay(100);
oranje kleur
digitalWrite (FOCUS_LED, laag);
digitalWrite (SHUTTER_LED, laag);
delay(1000);
digitalWrite (FOCUS_LED, hoge);
digitalWrite (SHUTTER_LED, hoge);
}