Map fonksiyonu eğer okuyanlar içerisinde mühendis arkadaşlar var ise bildiğimiz "İnterpolasyon" işlemini gerçekleştirmekte. Yani elimizde 2 değere karşılık gelen 2 farklı değer mevcut, elimizdeki 2 değer aralığında 1 değere karşılık ne geldiğini "İnterpolasyon" ile bulabilirsiniz. Tabi bu biraz karmaşık gelebilir bunu daha açık şekilde işlemler ile anlatayım;
Görseldeki bizim istediğimiz değerler olsun. 5 ve 37 elimizdeki değerler, 5 minimum - 37 maksimum değerimiz olsun. Bulara karşılık olarak da 93 ve 1023 değerleri de maksimum karşılık değerlerimiz. Yani map fonksiyonunu kullandığımızda 37 verdiğimizde 1023 değerini 5 verdiğimizde 93 değerini elde edeceğiz. Map fonksiyonu
yani "İnterpolasyon" dediğimiz işlem ise elimizdeki 5 ve 37 değerleri arasında bir değerimiz olur ise bu değere karşılık hangi değer geleceğidir. Örneğin 12 değeri girdiğimizde karşılık olarak ne değeri verecektir?
Bu işlemi öncelikle interpolasyon olarak anlatmak isterim eldeki değer yerine "12", İstenen Değer yerine ise X
yazacağım ve karşılık gelen değer yani "X
" i bulmaya çalışalım.
En sonda çarpılan -1 değeri işlem içerisindeki eşitlikte "-X
" değeri en sona kaldığı ve bu değeri "+X
" olarak bulmamızı sağlaması içindir.
Sonuç olarak; 296,4375
değerini elde edebiliriz.
Arduinoda map fonskiyonu ile kullanmak istersek;
double deger = map(eldeki_deger, 5, 37, 93, 1023);
şeklindedir. eldeki_deger diye bir değişken tanımlamamız gerekmektedir. Daha sonrasında 5 ile 37 arasına bu değeri koyarak kendi interpolasyon yapmaktadır.