Introduction: Control Servo Using PIR Sensor, Arduino

How to activate a servo motor with a PIR sensor

This was originally used for a candy dispenser, activated by movement

If you have any questions pls ask

Step 1: Step 1: Components

1. Arduino UNO (I'm using the MEGA but there's no difference)

2. PIR Sensor

3. Servo motor

4. Bread Board

5. Wires

6. LED and Resistor (optional)

Step 2: Wiring PIR Sensor

The PIR Sensor has three pins: GND(Ground), OUT(signal) and VCC(Voltage)

■ VCC to the Positive railings of the Bread board.

■ OUT pin to the Digital pin 2 of the Arduino board.

■ GND pin to the Negative railings of the Bread board.

Step 3: Wiring Servo Motor

The servo has 3 wires coming out of it: Signal(Orange), Voltage or VCC(Red in most cases) and Ground(Black or Brown)

■ Signal wire(Orange) to the Digital pin 9 in the Arduino board

■VCC wire(Red) to the Positive railings of the Bread board.

■ Ground wire(Brown)to the Negative railings of the Bread board.

Step 4: Final Wiring + LED

To finish off:

■ Wire together the 5V power pin in the Arduino board with the Positives railings of the Beard board

■ Wire together the Ground power pin in the Arduino board with the Negative railings of the Beard board

If you want to add an LED:

■ Wire together the Digital pin 6 in the Arduino board with pin a-12 in the Beard board

■ Place the LED with the longer leg in pin h-12 and shorter leg in pin h-11 in the Beard board

■ Place the Resistor connecting pins e-12 and f-12 in the Beard board

■ Wire the Negative railing with pin f-11 in the Beard board

Step 5: Code

#include <Servo.h>

//if error stray /342 occurs, type this line yourself, it could be a unicode error

Servo myservo;

int led=6;

int pir=2;

void setup()

{

pinMode(pir,INPUT);

pinMode(led,OUTPUT);

myservo.attach(9);

myservo.write(60); //starting position of the servo motor

Serial.begin(9600);

}

void loop()

{

int val = digitalRead(pir);

Serial.println(val);

if(val==HIGH) {

digitalWrite(led,HIGH);

myservo.write(140);

delay(1000);

myservo.write(60);

digitalWrite(led,LOW);

delay(2000);

}

delay(100);

}

Just in case i attached the arduino file :)

Attachments