(map関数について理解する

  今回は、前回arduinoとMCP9700-E/toを使って温度センサーを作ったのですが

その時に出てきたmap関数についての知識がなかったので今回は、map関数を

理解していこうと思います。

 

map関数とはある範囲の数値を別の単位の数値に再mapするという意味です。

つまり、fromLow の値は toLow に、fromHigh の値は toHigh に、

中間の値は中間の値にという風に値を変換することができるのです。

 

■構文

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

■変数↑

このときにパラメーターはというと

value   : マッピングする番号。
fromLow  : 値の現在の範囲の下限。
fromHigh : 値の現在の範囲の上限。
toLow   : 値のターゲット範囲の下限。
toHigh  : 値のターゲット範囲の上限。

 

■実際に使ってみた(MCP9700を使った温度を測るためのスケッチ)

int res;
int mv;
int temp;

void setup() {
  Serial.begin(9600);
}

void loop() {

  // センサ値読込み
  res = analogRead(0);

  // センサ値を電圧に変換
  mv = map(res, 0, 1023, 0, 5000);

  // 電圧から温度に変換
  temp = map(mv, 100, 1750, -40, 125);
  
  Serial.print("temp:");
  Serial.print(temp);
  Serial.print("c");

  delay(1000);
  Serial.println("");
}