Étape 3: Le code pour arduino pour le câblage pour la première de la cogner
Ce code, que j’ai reçu de instructable() de vouspourrez
Je viens de faire quelques changements au code original comme dans quelle mesure le servo spinned et à quelle vitesse qu'il s’installe mais qui est assez bien il. Merci donc à vouspourrez.
CODE
#include < Servo.h >
Servo myservo ;
int pos = 0 ;
unsigned long int lowIn ;
unsigned long int pause = 5000 ;
Boolean lockLow = true ;
Boolean takeLowTime ;
int pirPin = 12 ; broche numérique connecté à la sortie de la PIR
int pirPos = 13 ; se connecte à broches 5V de la PIR
void setup() {}
myservo.Attach(4) ;
Serial.Begin(9600) ;
pinMode (pirPin, entrée) ;
pinMode (pirPos, sortie) ;
digitalWrite (pirPos, HIGH) ;
Serial.println ("calibrage capteur") ;
pour (int i = 0; i < 30; i ++) {}
Serial.Print("-") ;
Delay(1000) ;
}
Serial.println() ;
Serial.println("Done") ;
même si (digitalRead(pirPin) == HIGH) {}
Delay(500) ; Serial.Print(".") ;
}
Serial.Print ("capteur actif") ;
}
void loop() {}
if(digitalRead(pirPin) == HIGH) {}
pour (pos = 0; pos < 90; pos += 1)
{
myservo.Write(POS) ; raconte le servo pour aller à positionner dans la variable « pos »
Delay(5) ; attend que le servo atteindre la position
}
pour (pos = 90; pos > = 1; pos-= 1) //goes de 90 à 0 degrés
{
myservo.Write(POS) ;
Delay(50) ;
}
if(lockLow) {//makes sûr de que nous attendre à une transition vers le bas avant sortie supplémentaire est faite
lockLow = false ;
Serial.println("---") ;
Serial.Print ("mouvement détecté à") ;
Serial.Print(Millis()/1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
takeLowTime = true ;
}
if(digitalRead(pirPin) == faible)
{
{if(takeLowTime)}
lowIn = millis() ; économiser le temps de la transition entre la haute et basse
takeLowTime = false ;
}
Si (! lockLow & & millis() - lowIn > pause) {}
fait bien sûr ce bloc de code est exécuté uniquement après
une nouvelle séquence de mouvement a été détectée
lockLow = true ;
Serial.Print ("requête s’est terminée à ») ; sortie
Serial.Print((Millis() - pause) / 1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
}
}