大好きArduino

Arduino総合情報サイト

Arduino文法

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

2016/06/09

数値(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

/* 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);
}

Arduino 原文

-Arduino文法