Étape 4: programme
programmer l’arduino avec le code suivant
///////////////////////////////////////////////////////////////////
SENTINELLE de mdwilson 01/05/2013
#include < Servo.h >
Sentinelle de servo ; Créez l’objet servo pour contrôler un servo
Déclencheur de servo ; Créez l’objet servo pour contrôler un servo
const int buttonPin = 2 ; le nombre de la tige poussoir
const int ledPin = 13 ; le nombre de l’axe de la LED
buttonState int = 0 ; variable pour la lecture de l’état de bouton poussoir
int tooClose = 350 ; Comment fermer est trop étroite pour le capteur ir ?
int servoSpeed = 100 ; Comment ralentir voulez-vous le turent à déplacer ?
int pos = 0 ; variable pour stocker la position du servo
intrus booléen = false ; est il y a ou y at-il n’est pas un intrus ?
void setup()
{
pinMode (ledPin, sortie) ; initialiser les broches de la LED en tant que sortie :
pinMode (buttonPin, entrée) ; initialiser la tige poussoir comme entrée :
digitalWrite(buttonPin,HIGH) ;
Serial.Begin(9600) ; permettre la communication série
Sentry.Attach(9) ; attache le servo sur la broche 9 à l’objet de servo
Trigger.Attach(10) ; attache le servo sur la broche 9 à l’objet de servo
Trigger.Write(0); / / définir position initiale trigger
}
void loop()
{
lire l’état de la valeur du bouton poussoir :
buttonState = digitalRead(buttonPin) ;
Si (buttonState == faible) {}
intrus = false ;
Serial.println("Reset") ;
}
Serial.println ("in =" + intrus) ;
tant qu’il n’y a aucun intrus, continuer à rechercher
{if(!Intruder)}
pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés
{
Si {(intrus)
rupture ;
}
par incréments de 1 degré
Sentry.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(servoSpeed) ; attend que le servo atteindre la position
intruderCheck() ;
}
pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés
{
Si {(intrus)
rupture ;
}
Sentry.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(servoSpeed) ; attend que le servo atteindre la position
intruderCheck() ;
}
} else {}
déclencher l’alarme
Alarm() ;
}
}
faire un clin led alam
alarm() Sub {}
digitalWrite (ledPin, HIGH) ;
Delay(200) ;
digitalWrite (ledPin, basse) ;
Delay(200) ;
}
Vérifiez si le capteur ir voit un objet
Sub intruderCheck()
{
int sensorValue = analogRead(A0) ;
afficher la valeur que vous lisez :
Serial.println(sensorValue) ;
Si (sensorValue > tooClose & &! intrus)
{
Delay(100) ;
Shoot() ;
intrus = true ;
}
}
Sub shoot()
{
Serial.println("Triggered!") ;
Serial.println ("intrus =" + intrus) ;
Trigger.Write(45) ;
Delay(1000) ;
Trigger.Write(0) ;
}