5. dersimize başlıyoruz dostlar. Dersimiz map fonkisyonu hakkında..

Map fonksiyonu temel olarak belirli bir değer aralığında olan tam sayı değerlerini başka bir değer aralığına çevirir. Örneğin Analog pinlerini kullanarak dışarıdan bir değer alıyorsanız buradan gelecek değer 0-1024 arasında olacaktır. Siz bunu map fonksiyonunu kullanarak istediğiniz aralığa oranlayabilirsiniz.

Genel formatı aşağıdaki gibidir:

map(value, fromLow, fromHigh, toLow, toHigh)

Örnek Kullanım:

int sonuc=map(x, y, z, t, u);

Burada;

    x, mevcut değerinizi(değişken olabilir)
    y, mevcut değerinizin alabileceği en küçük değeri
    z, mevcut değerinizin alabileceği en yüksek değeri
    t, yeni değerinizin almasını istediğiniz en küçük değer
    u, yeni değerinizin almasını istediğiniz en büyük değer

Gelin bunu bir program üzerinde kullanarak anlamaya çalışalım. Programımız bir servo motoru bir potansiyometre ile kontrol etmek üzere olsun. Belki bazı kısımları size yabancı gelebilir ama önemli değil. Zaten iki türlü eğitim metodu var. İlki tümevarım yani küçük parçaları verip bir bütün oluşturmanızı beklemek, diğeri tümdengelim. o da bir bütünü verip parçaların üzerine eğilmek şeklinde. O nedenle biz yolumuza devam ediyoruz.

BAĞLANTI ŞEKLİ:



KOD:

#include <Servo.h>

Servo myservo;  // Servoyu kontrol etmek için nesnemizi oluşturuyoruz.

int potpin = 0;  // Potansiyometremizi bağladığımız analog pinimiz belirtiyoruz.Pot A0'a bağlı diyoruz yani
int val;    // Analog pinden gelen değeri tutacağımız değişken,tipi integer

void setup() {
  myservo.attach(9);  // Servonun bağlandığı pini belirtiyoruz.
}

void loop() {
  val = analogRead(potpin);            // Potansiyometreden gelen değeri okuyoruz. Bu değer 0 ile 1024 arasında
  val = map(val, 0, 1023, 0, 180);     // Bu okunan değeri 0 ile 180 arasına oranlıyoruz.
  myservo.write(val);                  //Servonun 0 ile 180 derece arasında belirlenen değere göre hareket etmesini sağlıyoruz.
  delay(15);                           // bekleme
}

ÖNEMLİ NOT : Map fonksiyonu ile ilgili en çok dikkat edilmesi gereken konu ise integer olarak çalışmasıdır. Yani normalde sonucu 3,43123 beklersiniz ama onun döndüreceği sonuç 3’tür. Buna dikkat etmeyi unutmayın.



 

 

 

 

 

 

 


Yorum ekle


Güvenlik kodu
Yenile

SON YORUMLANANLAR

GELEN GİDEN SAYISI

246472
Bugün
Dün
Bu hafta
Geçen hafta
Bu Ay
Geçen Ay
Tümü
300
421
721
241972
16149
21393
246472

Your IP: 93.89.232.254
2017-06-26 14:02