Arduino Hareket Sensörü (PIR) ile Servo Motor Kontrol Projesi

Merhaba , bu yazımda hareket sensörü (PIR) ile servo  motor kontrolü yapacağım. Servo motorun dönme açısını belirleyerek örneğin 180 derece yaptığımızda  kapı açıp kapama gibi örneklerle gerçek hayatımızda pratikleştirebiliriz. Hareket sensörümüz sayesinde kapıya yaklaşan kişi algılanır ve servo motor sayesinde de kapı açılıp kapanabilir.Haydi hemen projemize başlayalım. 

Malzemeler

1 adet Arduino Uno

1 adet Breadboard

1 adet servo motor

Hareket Sensörü (PIR)

5 adet erkek-erkek jumper kablo

3 adet erkek-dişi jumper kablo

Çalışma Prensibi 

Maddeler sahip oldukları ısıdan dolayı etrafa kızılötesi dalga saçar ve hareket sensörü kızılötesi dalgaları algılayarak çalışır. Kızılötesi dalgalardaki değişimi algılar ve sinyal çıktısı verir. Projemizde hareket sensöründen veri okunarak bir hareket olduğunda servo motorumuz da hareket edecek. Motorumuz kodumuzla birlikte 180 derece açıya gidip sonra sıfırlanacak. Yazdığımız kodla birlikte servo motora istediğimiz açıyı yaptırabiliriz.

Devre

  1.  Adım: hareket sensörümüzü yerleştiriyoruz. Hareket sensörün GND yani eksi pinini beardboard üzerinde eksi ile Hareket sensörün VCC yani artı pinini ise breadboard üzerinde artı ile 

    Hreket senörün DATA pinini ise arduino üzerinde bulunan 8. pinle birleştirdik. 

    2.  Adım servo motorumuzu yerleştiriyoruz. Servo motorun GND pinin breadboard üzerinde eksi 

    Servo motorun VCC  pinini breadboard üzerinde artı 

    Servo motorun sinyal pinini ise arduino üzerinde bulunan 2. pinle birleştirdik. 

 

kod

(dikkat!! servo motor kullandığımız için servo motor kütüphanesi eklemeyi unutmayın.)

 

#include <Servo.h>// servo motor kütüphanesi

 

int pirPin = 8; //Sensörü taktığımız pin

int servoPin = 2; //Servoyu taktığımız pin

int hareket; //Sensörden alınan veriyi hafızada tutmak için değişken tanıımlıyoruz

Servo motor;//Servo motoru kontrol etmemizi sağlayan motor adında servo motor tanımladık

 

void setup() {

  motor.attach(servoPin); //Servomuzu 9. pin ile ilişkilendirdik.

  pinMode(pirPin, INPUT);  //Sensör pinimizi giriş olarak ayarladık 

 

}

 

void loop() {

  hareket = digitalRead(pirPin); //Sensörden hareket verisini okuyoruz

 

  if (hareket == HIGH) {// if-else ile hareket pinimizin değerine göre servo motorumuza gerekli açı komutunu gönderiyoruz.

    motor.write(180);//istediğimiz açı değeri

    delay(250);//bekleme

    motor.write(0);

  

  }

  else { //Hareketlilik yok ise içerideki komutlar uygulanır.

    motor.write(90);

 

  }

}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top