#9 Arduino Servo Motor Kontrolü

Malzeme Listesi:


1 Adet Arduino Uno (25TL)
1 Adet Servo Motor (15-40 TL)
Servo motorların torkuna ve kalitesine fiyatları değişebiliyor.

Devre Kurulumu

Malzemelerden de anlaşılacağı gibi sadece servonun 3 pinini arduinoya bağlayacağız.Sarı pini arduinonun 11. pinine kırmızıyı 5V ve siyahı GND pinine bağlayalım.

Programlama:

Servo kütüphanesinde kullanılanları öncelikle açıklayalım.

servo.attach(pin) -> Sarı kabloyu bağladığımız pini yazıp tanımladık.

servo.write(açı) -> Servonun kaç derece dönmesi gerektiğini bu komutla belirtiyoruz.

servo.writeMicroseconds(uS) -> uS değeri genellikle 1000 ile 2000 arasında değer alır 1000 0 dereceye karşılık gelirken 2000 180 dereceye karşılık gelmektedir. servo.writeMicroseconds(1500) yazdığımızda servo.write(90) la eşdeğer olacaktır.

servo.read() -> servonun kaç derece açı yaptığı bilgisini gönderir. bir değişkene atılarak kullanılabilir. ÖRN: int acıoku = servo.read()

servo.attached() -> servoyu tanımlattıysak true yollayacaktır. Boolean döndürecektir.  if(servo.attached()) //servo tanımlandıysa bu koşulun içine girecektir.

servo.detach() -> pinden çıkar demek oluyor

Gelelim programımıza:
Servo kütüphanesini en başta eklemeyi unutmayınız.

#include <Servo.h> Servo benimservom; // servomuzun adını tanımlıyoruz void setup() { Serial.begin(9600); benimservom.attach(11); // servomuzun 11. pine bağlı olduğunu tanımladık benimservom.write(0); // ilk konumunu 0 derece olarak belirledik hangi dereceye gideceğini write komutu ile yazdırırız. } void loop() { if(benimservom.attached()) { for(int dondur=0 ; dondur<=180 ; dondur+=10) { //100 ms aralıkla servoyu 10ar derece arttırarak 180 dereceye ulaşacaktır. benimservom.write(dondur); int acioku = benimservom.read(); Serial.println(acioku); delay(100); } for(int dondur=180 ; dondur>=0 ; dondur-=10) { // 100 ms aralıkla 180 dereceden 0 dereceye 10 ar derece düşeşerek ulaşacaktır. benimservom.write(dondur); int acioku = benimservom.read(); Serial.println(acioku); delay(100); } //ve bu döngüyü sürekli yapacaktır } }

Böylece 0 ile 180 derece arasında dönen bir servomuz olacaktır. Servonun hangi açıda olduğunu seri ekrandan görebilirsiniz.



Yorumlar

Bu blogdaki popüler yayınlar

Sinyal Jeneratörü Nedir? (Function generator)

Arduino'dan Python'a veri aktarma

#12 Arduino ile Step Motor Kontrolü