// Define pin connections & motor's steps per revolution
const int dirPin = 4;
const int stepPin = 5;
const int stepsPerRevolution = 200;
const int sensor = 8; //pir pin
int val = 0; // variable holding if the pin is high or low
int state = LOW; // variable holding the state of the sensor - triggered or not.
void setup()
{
// Declare pins as Outputs
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(sensor, INPUT);
}
void loop()
{
// Set motor direction clockwise
val = digitalRead(sensor); // read sensor value from the PIR into VAL variable
if (val == HIGH) {
StartMotor();
}
else {
StopMotor();
}
}
void StartMotor()
{
digitalWrite(dirPin, HIGH);
for(int x = 0; x < 1000; x++) // 1000 steps is 5 turns
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(1000);
digitalWrite(stepPin, LOW);
delayMicroseconds(1000);
}
}
void StopMotor()
{
digitalWrite(dirPin, LOW);
digitalWrite(stepPin, LOW);
}