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
- 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
- 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)
- Mesafe sensöründeki Trig pininin bağlı olduğu stundaki bir yuvadan bir kablo ile Arduino’nun 7.pinine bağlıyalım
- Aynı şekilde Eko pininide Arduino’nun 8.pinine bağlıyalım
- 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.
- İlk olarak kahverengi kabloyu breadboard üzerindeki mesafe sensörünün GND sini taktığımız sütüna takalım
- Turuncu kabloyu da breadboard üzerindeki mesafe sensörünün VCC den gelen kablosunun olduğu stüna takalım
- 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);
}
kod hata veriyor
YanıtlaSildüzenlerseniz sevinirim