数値(value)を、元の範囲(fromLow~fromHigh)から新しい範囲(toLow~toHigh)の値に変換した数値を求めます。
valueがfromLowと同じ値の場合、toLowが返ります。
また、valueがfromHighと同じ値ならtoHighが帰ります。
そして、その中間の値の場合、2つの範囲の大きさの比に基づいて計算された値が返されます。
もし、ある範囲のなかに収めたい場合は、constrain関数と併用します。
値の反転に使いたい場合は、範囲の下限を上限より大きな値に設定します。
例 y = map(x, 1, 50, 50, 1);
指定範囲にはマイナスも使用することが可能です。
例 y = map(x, 1, 50, 50, -100);
map関数は、整数だけを対象としています。
もし計算の結果小数が生じた場合、小数部分は切り捨てられます。
●引数
value | (long) 値 |
fromLow | (long) 元の範囲 下限 |
fromHigh | (long) 元の範囲 上限 |
toLow | (long)新しい範囲 下限 |
toHihgh | (long)新しい範囲 上限 |
●戻り値
(long)求められた新しい数値
●Example from Arduino Web Site
[c]
/* 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);
}
[/c]