Stap 4: programma
programmeren van de arduino met de volgende code
///////////////////////////////////////////////////////////////////
SENTRY door mdwilson 5/1/2013
#include < Servo.h >
De Schildwacht van de servo; maken van servo-object om te bepalen van een servo
Servo trigger; maken van servo-object om te bepalen van een servo
Const int buttonPin = 2; het nummer van de drukknop pin
Const int ledPin = 13; het nummer van de LED-pin
int buttonState = 0; variabele voor het lezen van de drukknop status
int tooClose = 350; is hoe dicht te dichtbij voor de ir-sensor?
int servoSpeed = 100; hoe traag wil je het turent verplaatsen?
int pos = 0; variabele op te slaan van de servo positie
Booleaanse indringer = false; is er of is er een indringer aint?
VOID Setup
{
pinMode (ledPin, OUTPUT); Initialiseer de LED-pin als uitgang:
pinMode (buttonPin, INPUT); Initialiseer de drukknop pin als input:
digitalWrite(buttonPin,HIGH);
Serial.begin(9600); seriële communicatie mogelijk maken
Sentry.attach(9); de servo op pin 9 hecht aan de servo-object
trigger.attach(10); de servo op pin 9 hecht aan de servo-object
trigger.write(0); / / positie van de eerste trigger instellen
}
void loop
{
Lees de stand van de drukknop waarde:
buttonState = digitalRead(buttonPin);
Als (buttonState == LOW) {}
indringer = false;
Serial.println("Reset");
}
Serial.println ("in =" + indringer);
zolang er geen indringer, blijven zoeken
if(!Intruder) {}
voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden
{
Als (indringer) {}
breken;
}
in stappen van 1 graad
Sentry.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(servoSpeed); wacht tot de servo te bereiken de positie
intruderCheck();
}
voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden
{
Als (indringer) {}
breken;
}
Sentry.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(servoSpeed); wacht tot de servo te bereiken de positie
intruderCheck();
}
} else {}
instellen van het alarm
alarm();
}
}
Maak het alam led knipperen
ongeldig alarm() {}
digitalWrite (ledPin, hoge);
delay(200);
digitalWrite (ledPin, laag);
delay(200);
}
Controleer of de ir-sensor een object ziet
VOID intruderCheck()
{
int sensorValue = analogRead(A0);
de waarde die u leest uitprinten:
Serial.println(sensorValue);
Als (sensorValue > tooClose & &! indringer)
{
delay(100);
Shoot();
indringer = true;
}
}
VOID shoot()
{
Serial.println("triggered!");
Serial.println ("indringer =" + indringer);
trigger.write(45);
delay(1000);
trigger.write(0);
}