Deskripsi
Merupakan fungsi re map suatu nilai dari range tertentu ke range yang lain. Nilai dari fromLow akan dimap ke toLow dan nilai dari fromHigh akan dimap ke toHigh.
Di sini nilai yang dihasil tidak akan dibatasi hanya dalam range tertentu karena bisa jadi akan berada di luar itu. Fungsi constrain() dapat dilakukan setelah fungsi ini apabila memang dibutuhkan pembatasan range.
Batas bawah bisa jadi akan berada di atas batas atas sehingga fungsi map() akan membalik range dari suatu nilai.
Contoh:
y=map(x,1,50,50,1);
Fungsi ini juga dapat menangani nilai negatif sebagai berikut: y = map(x,1,50,50, -100);
Fungsi ini hanya menggunakan nilai integer sehingga apabila terdapat pecahan maka akan diperoleh hasil yang
dibulatkan. Contohnya 3.5 akan dibulatkan menjadi 4
Syntax
map (value, fromLow, fromHigh, toLow, toHigh);
Parameters
value: nilai yang di map
fromLow: batas bawah dari rentang sumber
fromHigh: batas atas dari rentang sumber
toLow: batas bawah dari rentang target
toHigh: batas atas dari rentang target
Returns
Nilai yang dimap
Contoh Program
void setup() {}
void loop() {
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val); // hasil map dikirim sebagai PWM ke digital 9
}
Appendix
Berikut adalah model matematikanya
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;
}
Catatan dan Peringatan
Fungsi ini hanya berlaku pada tipe int sehingga nilai pecahan akan
dibulatkan.
Apabila diinginkan proses yang membutuhkan presisi
tinggi maka sebaiknya hindari fungsi map() dan buatlah code sendiri
secara manual
Terjemahan dan edit dari
https://www.arduino.cc/reference/en/language/functions/math/map/
DELTA ELECTRONIC Paulus Andi Nalwan, ST