#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.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
Yorum Gönder