Arduino

Açı Vererek Servo Motor Kontrolü

Servo motorlarda aşağıda görüldüğü gibi 3 adet giriş pini bulunur. Bu pinlerden kırmızı renkli kablo ucunun bağlı olduğu pin, servo motorun (+) besleme ucu olup mikrodenetleyici kartın 5V pinine bağlanır. Servo motorun kahverengi kablo ucunun bağlı olduğu pin, servo motorun (-) besleme ucu olup  mikrodenetleyici kartın GND pinine bağlanır. Servo motorun turuncu kablo ucunun bağlı olduğu pin ise PWM sinyal ucu olup mikrodenetleyici kartın giriş çıkış portlarından birine bağlanır. Görsel 3.51’deki devrede servo motorun PWM sinyal ucu mikrodenetleyici kartın D2 portuna bağlanmıştır. Servo motorları çalıştıracak PWM sinyalleri Servo.h kütüphanesi aracılığıyla üretilir. Servo servo1; komutuyla servo1 isminde bir servo nesnesi tanımlanır. void setup()fonksiyonu içine yazılan servo1.attach(2); komutuyla servo motorun sinyal ucunun bağlı olduğu port numarası belirlenir. void loop()fonksiyonu içine yazılan servo1.write(0); komutuyla servo motorun belirtilen açıda dönmesi sağlanır.
Açı vererek servo motor kontrolünü sağlayan örnek program kodları aşağıda görülmektedir.
#include <Servo.h>
Servo servo1; // servo1 adında servo nesnesi oluşturulur.
void setup() {
 servo1.attach(2); // Servo Motoru 2. porta bağlar.
}
void loop() {
 servo1.write(0); // Servo Motoru 0 derece döndür.
 delay(1000); // 1 saniye bekle.
 servo1.write(30); // Servo Motoru 30 derece döndür.
 delay(1000); // 1 saniye bekle.
 servo1.write(60); // Servo Motoru 60 derece döndür.
 delay(1000); // 1 saniye bekle.
servo1.write(90); // Servo Motoru 90 derece döndür.
 delay(1000); // 1 saniye bekle.
 servo1.write(150); // Servo Motoru 150 derece döndür.
 delay(1000); // 1 saniye bekle.
 servo1.write(180); // Servo Motoru 180 derece döndür.
 delay(1000); // 1 saniye bekle.
}
Servo motoru 0° ile 180° arasında döngü kullanarak dönmesini sağlayan örnek program kodları aşağıda görülmektedir.
#include <Servo.h>
Servo servo1; // servo1 adında servo nesnesi oluşturulur.
int pos = 0; // Servo motorun açısını tutan değişken
void setup() {
servo1.attach(2); // Servo Motoru 2. porta bağlar.
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) {
// 0 dereceden 180 dereceye 1 derece aralıkla döndüren for döngüsü
 Servo1.write(pos);
 delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
// 180 dereceden 0 dereceye 1 derece aralıkla döndüren for döngüsü
 Servo1.write(pos);
 delay(15);
}
}

 


İlgili Makaleler
Eğitsel Robotun Devre Şeması
LDR İle Ölçülen Işık Şiddetinin LCD Ekranda Gösterilmesi
Robotik Kodlama Çalışma Soruları
Eğitsel Robotun Montajı
Mesafe Sensöründe Okunan Değerlerin LCD Ekranda Gösterilmesi
7 Segment Display’in Uzaktan Kumanda ile Kullanımı
LCD Ekranda Yazılan Yazının Sağa veya Sola Kaydırılması
Potansiyometre ile LED Lambalarının Yanıp Sönme Hızının Ayarlanması
Sıcaklık Sensörü ile Okunan Değerlerin LCD Ekranda Gösterilmesi
Seri Port Ekranında Merhaba Dünya Mesajını Yazdıran Arduino Uno Uygulaması
Eğitsel Robotun Programlanması
Mikrodenetleyici Kart İle Birlikte Kullanılan 7 Segment Display Elemanı ve Özellikleri
Robot Tabanlı Proje Geliştirmede Eğitsel Robot Bileşenleri
TinkerCAD Platformunu Kullanarak Merhaba Dünya Mesajını LCD Ekranda Görüntüleyen Arduino Uygulaması
Rakamları 7 Segment Display Elemanıyla Görüntüleyen Uygulama
Arduino Uno Kart Kullanarak Anahtar İle Kontrol Edilen Dijital Giriş Uygulamasını TinkerCAD Platformunda Yapma
Arduino Uno Kart ile Trafik Lambası Kontrolü
RGB LED ile Uzaktan Kumandanın Kullanımı
Arduino Kart İle Led Yakma Uygulamasını TinkerCAD Platformunda Yapma
Arduino Kart İle Rastgele Belirlenen Süre Kadar Led Yakma Uygulamasını TinkerCAD Platformunda Yapma

Yorum Ekle
   
Kötü
İyi