Paso 3: El código de arduino para el cableado para el primero de los golpes
Este código que me dio instructable() de seraine
acabo de hacer un par de cambios al código original como hasta qué punto el servo spinned y qué tan rápido que se movió pero eso es bastante. agradecimiento especial a seraine.
CÓDIGO
#include < Servo.h >
Servo myservo;
int pos = 0;
tiempo unsigned int lowIn;
pausa larga unsigned int = 5000;
Boolean lockLow = true;
takeLowTime Boolean;
pirPin INT = 12; pin digital conectado a la salida del PIR
pirPos int = 13; se conecta al pin de 5V de PIR
void setup() {}
myservo.Attach(4);
Serial.Begin(9600);
pinMode (pirPin, entrada);
pinMode (pirPos, salida);
digitalWrite (pirPos, HIGH);
Serial.println ("calibración sensor");
para (int i = 0; i < 30; i ++) {}
Serial.Print("-");
Delay(1000);
}
Serial.println();
Serial.println("Done");
mientras que (digitalRead(pirPin) == HIGH) {}
Delay(500); Serial.Print(".");
}
Serial.Print ("SENSOR activo");
}
void loop() {}
if(digitalRead(pirPin) == HIGH) {}
para (pos = 0; pos < 90; pos += 1)
{
myservo.Write(POS); dice el servo a la posición en la variable "pos"
Delay(5); espera a que el servo a la posición
}
para (pos = 90; pos > = 1; pos-= 1) //goes de 90 a 0 grados
{
myservo.Write(POS);
Delay(50);
}
if(lockLow) {//makes que esperamos una transición a la baja antes de la salida más
lockLow = false;
Serial.println("---");
Serial.Print ("movimiento detectado en");
Serial.Print(Millis()/1000);
Serial.println ("sec");
Delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW)
{
{if(takeLowTime)}
lowIn = millis(); ahorrar el tiempo de la transición de alto a bajo
takeLowTime = false;
}
Si (! lockLow & & millis() - lowIn > pausa) {}
hace que este bloque de código es sólo se ejecuta después de
se ha detectado una nueva secuencia de movimiento
lockLow = true;
Serial.Print ("movimiento terminada en"); salida
Serial.Print((Millis() - pausa) / 1000);
Serial.println ("sec");
Delay(50);
}
}
}