21 Aralık 2016 Çarşamba

Map Komutu



Aslında biz bu komut olmadan da oran orantı kurarak aynı işlemi gerçekleştirebiliriz. Ama bu komut o kadar pratik ki insan oran orantıyla uğraşamam yazarım verileri halletsin işte diyesi geliyor. Map komutu iki farklı sınırdaki değerleri birbirine orantılandığımızı söyleyebiliriz.

Örneğin bizim elimizde 10 bitlik 0-1023 arası sınırlarda gezen bir değerimiz olsun. Bu değeri biz8 bite çevirmek istersek yani0-255 arası bir değere çevirmek istersek oran orantı kurarak bu işlemi hallederiz yada map komutuyla hallederiz. Peki map komutuyla bu işlemi nasıl yaparız.
Örnek: Analog olarak 0-1023 arası okuduğumuz değeri analog olarak 0-255 arası orantıyı koruyarak yazdırma.

Yani 2.5  V okuduğunuzda 2.5 V olarak çıkışa vereceğiz.Ama bu işlemi yaparken analogWrite ve analogRead komutlarının çalışma aralıkları aynı olmadığı için map komutu kullanarak bu aralıkları orantılayacağız.

void setup() {}

void loop()
{
  
int val = analogRead(A0);//val değişkenine A0. Pini okuyarak 0-1023 arası değeri aktarıyoruz.
  val = 
map(val, 0, 1023, 0, 255);/*val değişkenine val değişkeninden aldığımız 0-1023 arası değeri, 0-255  ile orantılayarak aktarıyoruz*/
  
analogWrite(9, val);//val değişkeninden 0-255 arasında gelen değeri 9 nolu pine veriyoruz.
}


Gördüğünüz gibi 3 satırda işlem tamam.
Disqus Yorumları Yükle

0 yorum