Arduino ile Servo Motor Kontrolü

Arduino ile Potansiyometre ve LDR kullanarak Servo Motor Kontrolü

Potansiyometre  kullanarak Servo Motor Kontrolü

Arduinonun A0 pinine bağlı potansiyometreyi çevirdiğimiz oranda 9.pine bağlı olan servo motorun dönmesini sağlayan Arduino programını yazdık.

Kullandığımız Standart Servo motor; 0 ile 180 derece arasında milini döndürüyor. Potansiyometre ile yaptığımız uygulamada potansiyometreyi çevirdikçe 0 ile 1023 arasında değişen sayısal değerlerin raporlandığını gözlemlemiştik. Bu değerleri bu uygulamada da kullandık.
Devre Şeması:

Arduino Programı:

/* "Servo Motor kontrolü." 
    Arduino ile potansiyometreyi çevirdiğimiz oranda servo motorun
    dönmesini sağlayan program.  diyot.net */

#include <Servo.h> //Servo kütüphanesini ekle.
Servo motor; //motor adında servo kullanacağım.
const int POTpin=A0; //A0 pinini POTpin olarak isimlendir.
int konum; //konum ve yeni konum adında değişkenler tanımla.
int yenikonum;

void setup() {
  motor.attach(9); //motor adındaki servoyu 9.pine bağladım.
  Serial.begin(9600); //Seri haberleşmeyi başlat.
}

void loop() {
  konum=analogRead(POTpin); 
  yenikonum=map(konum,0,1023,0,179);
  motor.write(yenikonum);
  Serial.print("konum degeri=");
  Serial.println(konum);
  //potu çevirdikçe 0-1023 arasında değerler görüntülenir.
  Serial.print("yeni konum degeri=");
  Serial.println(yenikonum);
  //potu çevirdikçe 0-179 arasında değerler görüntülenir.
  delay(30);
}

Servo motor kontrolünü kolay bir şekilde yapmamızı sağlayan Servo kütüphanesini Arduino programının başında ekledik. Kullanacağımız Servoyu “motor” olarak isimlendirdik. A0 pinine potansiyometre bağladığımız için o pini POTpin olarak isimlendirdik, değişmeyecek bir değer olduğundan const int veri tipinde tanımladık. Program içerisinde kullanılacak “konum” ve “yenikonum” isimlerindeki değişkenleri int veri tipinde programın başında tanımladık.
void setup() kısmında servo motoru Arduinonun 9.pinine bağladığımızı belirttik. Potansiyometre bağladığımız pin Arduinonun ANALOG IN girişlerinden biri olduğu için bu pini pinMode komutuyla giriş olarak ayarlamaya gerek yoktur. Ve Serial.begin(9600) komutunu yazarak seri haberleşmeyi başlatıyoruz.
void loop() kısmında potansiyometrenin ne kadar çevrildiğini analogRead komutuyla okuyup konum ismindeki değişkene kaydettik. Bu kaydedilen değerler 0 ile 1023 arasında değişmektedir. Standart servo motor ise 0 ile 180 dereceye kadar dönüş yapabilmektedir. O zaman yapılması gereken 0 ile 1023 arasında değişen değerleri, 0 ile 179 arasında değişen değerlere indirgemek-daraltmak olmalıdır. map komutunu kullanarak bunu yaptık ve daraltılan yeni sayısal değerleri yenikonum ismindeki değişkene kaydettik.
motor.write(yenikonum) yazarak potansiyometrenin çevirme hareketini servo motorun dönme hareketiyle ilişkilendirdik. Böylece potansiyometreyi çevirdiğimiz oranda servo motorun dönmesi sağlanmış oldu.

LDR kullanarak Servo Motor Kontrolü

Bu uygulamada programı hiç değiştirmeden potansiyometre yerine LDR bağlarsak; LDR üzerinde düşen ışık miktarına bağlı olarak servo motorun dönmesi sağlanır.
Devre Şeması:

YAZAR : Admin

Elektronik Mühendisi / E.Üni. Kalibrasyon Lab. Sorumlusu / Biyomedikal Kalibrasyon Laboratuvarı Sorumlu Müdürü (Sağ.Bak.) / X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) / Ultrason-Doppler Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) - Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Arduino ile BD135 – BD136 transistörlerini kullanarak DC Motor kontrolü

Çeşitli robot projelerinde kullanılan DC motorları Arduinoya doğrudan bağlayıp çalıştıramayız. Çünkü Arduinonun giriş-çıkış pinleri en …

Bir cevap yazın