map()



Açıklama

Bir sayıyı bir aralıktan diğerine yeniden eşler. Yani fromLow değeri toLow, toHigh için fromHigh değeri, değerler arasında kalan arada değerlere vb eşlenen alacağı olduğunu

Aralık dışı değerler bazen amaçlanmış ve yararlı olduğundan, değerleri aralık içinde sınırlamaz. Aralıklarla ilgili sınırlar isteniyorsa, constrain() işlevi bu işlevden önce veya sonra kullanılabilir.

Her iki aralığın "alt sınırları" nın "üst sınırlar" dan daha büyük veya daha küçük olabileceğine dikkat edin, böylece map() işlevi bir sayı aralığını tersine çevirmek için kullanılabilir, örneğin

y = map(x, 1, 50, 50, 1);

İşlev ayrıca negatif sayıları da iyi işler, böylece bu örnek

y = map(x, 1, 50, 50, -100);

de geçerlidir ve iyi çalışır.

map() işlevi, tamsayı matematik kullanır, bu nedenle matematik bunu yapması gerektiğini gösterebileceği zaman kesirler oluşturmaz. Kesirli kalıntılar kesilir ve yuvarlatılmaz veya ortalaması alınmaz.

Sözdizimi

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

Parametreler

value : eşlenecek sayı.
fromLow : değerin geçerli aralığının alt sınırı.
fromHigh : değerin geçerli aralığının üst sınırı.
toLow : değerin hedef aralığının alt sınırı.
toHigh : değerin hedef aralığının üst sınırı.

İadeler

Eşlenen değer.

Örnek Kod

/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop() {
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}

Ek Bölüm

Matematiksel olarak eğimli için, tüm fonksiyon burada

 long map(long x, long in_min, long in_max, long out_min, long out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } 

Notlar ve Uyarılar

Daha önce belirtildiği gibi, map () işlevi tamsayı matematiğini kullanır. Bu nedenle kesirler bastırılabilir. Örneğin, 3/2, 4/3, 5/4 gibi kesirlerin hepsi, farklı gerçek değerlerine rağmen map () işlevinden 1 olarak döndürülür. Projeniz hassas hesaplamalar gerektiriyorsa (örn. 3 ondalık basamağa kadar doğru voltaj), lütfen haritadan () kaçınmayı ve hesaplamaları manuel olarak kodunuza kendiniz uygulamayı düşünün.

Ayrıca Bakınız