Arduinoリファレンス

Arduinoリファレンスの日本語訳のページです
garretlab
map()

名称

map()

説明

ある範囲の数値を別の範囲の数値に対応づける。すなわち、fromLowはtoLowに、fromHighは、toHighに、fromLowとfromHighの間の数値はtoLowとtoHighの間の数値に対応づけられる。

範囲外の値を意識して使う場合もあるし有効でもあるので、変換する値は指定された範囲に限定しない。範囲を制限する必要がある場合は、constrain()関数を、この関数の前後で利用すればいい。

下限値は上限値よりも大きくてもいいし、上限値は下限値より小さくてもいい。これにより、例えば、値の範囲を逆転させることができる。

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

負の値を使うこともでき,以下のような使い方も可能である。

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

map()関数は整数で計算をするため、計算結果が小数になっても、小数は生成しない。小数点以下は切り捨てられる。四捨五入をしたり平均をとったりはしない。

書式

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

引数

value 対応させる値
fromLow 対応前の値の下限
fromHigh 対応前の値の上限
toLow 対応後の値の下限
toHigh 対応後の値の上限

戻り値

対応付けられた値

使用例

/* analogRead()で読み取った10ビット(0から1023)の値を8ビット(0から255)に対応付ける */
void setup() {}

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

補足

興味のある人向け。この関数のすべてのソースは以下の通り。

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;
}

バージョン

Arduino 1.8.3

オリジナルのページ

https://www.arduino.cc/en/Reference/Map



メニューを表示するためにJavaScriptを有効にしてください。

inserted by FC2 system