Arduino Ders 31: Servo Motor ile Akıllı Çöp Kutusu


Servo Motor ile Akıllı Çöp Kutusu

Malzemeler

• 1 adet  RC Servo Motor (sg90)

• Arduino Uno

• HC-SR04 Ultrasonik Mesafe Sensörü

• 9v pil

• Yapıştırmak için sıcak silikon tabancası ve biraz silikon


İlk olarak mesafe sensörünü bağlayalım

  1. Mesafe sensöründeki VCC pini 5V a gidicek,servo motordan da 5v çıkışı olacağı için ben breadboard kullandım.Öncelikle mesafe sensöründeki VCC,Trig,Eko,GND pinlerini arduino daki belirlediğiniz bir yere takalım
  2. Mesafe sensörünün VCC pininden gelen kabloyu breadboard üzerinde bir  yuva atlayın ve diğer yuvadan bir kablo yardımı ile Arduino’ nun 5v pin i ne bağlıyalım(boş bıraktığımız yere servo motorun 5v çıkışı gelicek)
  3. Mesafe sensöründeki Trig pininin bağlı olduğu stundaki bir yuvadan bir kablo ile Arduino’nun 7.pinine bağlıyalım
  4. Aynı şekilde Eko pininide Arduino’nun 8.pinine bağlıyalım
  5. Mesafe sensöründeki GND pinini  yine kablonun breadboard üzerindeki bağlı olduğu stundan bir kablo yardımı ile arduinonun GND pinine bağlıyalım.Yine GND nin bağlı olduğu bir yuvaya da servo moturdan bir kablo çekeceğiz.

Şimdi servo motoru bağlayalım

Servo motordan 3 çıkış vardır.Bunlardan kahverengi kablo GND ye,sarı kablo Arduino üzerindeki bir pwm pinlerine(Pinlerin yanında bir işaretle gösterilir) ve turuncu kablo ise 5v a bağlanır.
  1. İlk olarak kahverengi kabloyu breadboard üzerindeki mesafe sensörünün GND sini taktığımız sütüna takalım
  2. Turuncu kabloyu  da breadboard üzerindeki mesafe sensörünün VCC den gelen kablosunun olduğu stüna takalım
  3. Sarı kabloyu ise Arduino’nun pwm pinlerinden 9.pine bağlıyalım
 Bağlantımız bu kadar şimdi kod kısmına geçelim
Servo motoru kullanmak için Arduino IDE  de kod satırına ilk olarak servo kütüphanesini eklememiz gerekiyor.Bu kütüphane Arduino’yu yüklediğinizde yanında geliyor.Eğer sizde yoksa  arduino.cc  adresinden indirebilirsiniz.

#include                //servo kütüphanesini ekledik

Servo myservo;            //myservo adında bir nesne tanımladık,istediğiniz ismi koyabilirsiniz
const int eko=8;         //eko pinini seçtik
const int trig=7;        //trig pinini seçtik
int mesafe;
int sure;

void setup() {
  myservo.attach(9);           //servo motorun 9.pinini arduino ya tanıttık
  pinMode(trig,OUTPUT);        //aynı şekilde trig pinini çıkış olarak arduinoya tanıttık
  pinMode(eko,INPUT);          // buraya dikkat edelim eko pinin arduinoya giriş olarak tanımamız lazım 
}

void loop() {
  myservo.write(0);       //başlangıçta motorumuz 0.derecede duruyor
  Serial.begin(9600);     //Seri port ekranından takip edebilmek için seri haberleşmeyi başlattık
  
   
  /* Burası arduino da mesafe hesaplama bölümüdür.
   *  Bu bir kalıptır çoğu kişi böyle kullanır o yüzden çok önemli değil
  */
   
  digitalWrite(trig, LOW);         
  delayMicroseconds(10);
  digitalWrite(trig, HIGH);       
  delayMicroseconds(20);
  digitalWrite(trig, LOW);         
  sure = pulseIn(eko, HIGH);      
  mesafe= (sure/29.1)/2;  
  
/* bu bölümde eğer mesafe 5 cm ve altında ise servo motor 160.dereceye kadar gelir ve
 *  5 saniye bekler.Başlangıcta servo motoru 0.derecede başlattığımızdan bu if çalıştıktan sonra 0.dereceye gelicektir.
 */
  if(mesafe<=5){
    myservo.write(160);
    delay(5000);   
  }
  /*Burada mesafe sensörü 2 metreden fazlasını net ölçemediğinden mesafe 200 cm den büyükse mesafeyi 200 olarak sabitleyip seri port ekranına yazdırıyoruz.
   * 
   */
  if(mesafe>200)
mesafe=200;
Serial.print("mesafe");
Serial.println(mesafe);
delay(500);
}

1 Yorumlar

Daha yeni Daha eski