Yazdır
Kategori: Arduino
Gösterim: 1706

Öncelikle motor shield'ı Arduino kartının üzerine takınız.

 

 

Takma işleminden sonra Arduino pinlerine shield yokmuş gibi, shield üzerindeki pinlerden ulaşabilirsiniz fakat bu pinlerden bazıları motor sürücüde kullanıldığı için başka işlemler için kullanılamaz. Motor sürücüsü Arduino'nun Dijital pinlerinden 3, 8, 9, 11, 12 'ı kullanmaktadır. Bu pinlerinde kullanım amaçları aşağıdaki tabloda gösterilmiştir.

Görev A motoru B motoru
Yön Dijital 12 Dijital 13
Hız (PWM) Dijital 3 Dijital 11
Fren Dijital 9 Dijital 8

Fark edildiği gibi normal motor sürücülerden farklı olarak tek pinle ileri ve geri yön kontrolü yapılmaktadır. Yön pinlerinin HIGH (5 volt) yada LOW (0 volt) olmasına göre motor ileri veya geri yönde dönmektedir. Fren pini ise motorun durmasını sağlamaktadır. Fren pini HIGH (5 volt) olursa motor fren yapacak ve duracaktır.

Örneğin motorlardan birini harekete geçirmek için öncelikle motorun döneceği yönü belirlemek için yön pinini  ileri için HIGH (5 volt) yada geri için LOW (0 volt) düzeyine çekmeliyiz. Yön ayarlandıktan sonra motorun dönmesi için fren pini LOW (0 volt) düzeyine getirilmelidir. Motorun hızının ayarlanması için hız pinine analogWrite fonksiyonuyla 0-255 arasında hız bilgisi gönderilmelidir. Shield doğrudan Arduino üzerine takıldığı için harici olarak devre kurulmasına gerek kalmamaktadır. Motor ve besleme bağlantısını aşağıdaki resimde gösterildiği gibi shield üzerine bağlanmalıdır.

 

 

void setup() 
{
  /* A motorunun ayarları */
  pinMode(12, OUTPUT); /* Yön pini çıkış olarak ayarlandı */
  pinMode(9, OUTPUT); /* Fren pini çıkış olarak ayarlandı */

  /* B motorunun ayarları */
  pinMode(13, OUTPUT);  /* Yön pini çıkış olarak ayarlandı */
  pinMode(8, OUTPUT);  /* Fren pini çıkış olarak ayarlandı */
}

void loop()
{
  /* önce her iki motor ileri dönecek */

  /* A motoru ileri yönde dönmesi için ayarlanıyor */
  digitalWrite(12, HIGH); /* ileri yön ayarı yapıldı */
  digitalWrite(9, LOW);   /* fren kapatıldı */
  analogWrite(3, 150);   /* dönme hızı ayarlandı,  150 hızında dönecek, maximum 255*/
  
  /* B motoru ileri yönde dönmesi için ayarlanıyor */
  digitalWrite(13, HIGH); /* ileri yön ayarı yapıldı */
  digitalWrite(8, LOW);   /* fren kapatıldı */
  analogWrite(11, 150);   /* dönme hızı ayarlandı */

  delay(1000);          /*    1 saniye ekleyecek yani yukarıda yapılan işlem bir saniye boyunca yapılacak   */

/*   Her iki motora fren yaptırılarak durması salanacak */

  digitalWrite(9, HIGH);   /* fren yapıldı */
  digitalWrite(8, HIGH);   /* fren yapıldı */

  delay(1000);   /*    1 saniye ekleyecek yani yukarıda yapılan işlem bir saniye boyunca yapılacak   */

  /* A motoru geri yönde dönmesi için ayarlanıyor */
  digitalWrite(12, LOW); /* geri yön ayarı yapıldı */
  digitalWrite(9, LOW);   /* fren kapatıldı */
  analogWrite(3, 150);   /* dönme hızı ayarlandı */
  
  /* B motoru geri yönde dönmesi için ayarlanıyor */
  digitalWrite(13, LOW); /* geri yön ayarı yapıldı */
  digitalWrite(8, LOW);   /* fren kapatıldı */
  analogWrite(11, 150);   /* dönme hızı ayarlandı */

delay(1000); /* 1 saniye ekleyecek yani yukarıda yapılan işlem bir saniye boyunca yapılacak */ }