Arduino入門:算術関数

ArduinoのSketch(スケッチ)で使用できる算術関数について解説します。

min

minは、2つの数値を比較して小さいほうの値を返します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:min(x, y)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

max

maxは、2つの数値を比較して大きいほうの値を返します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:max(x, y)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

abs

absは、絶対値を計算して返します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:abs(x)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

constrain

constrainは、数値を指定した範囲のなかに収めて返します。設定パラメータは次の通りです。

x: 計算対象の値
a: 範囲下限
b: 範囲上限

constrainは、xがa以上b以下のときはxがそのまま返ります。xがaより小さいときはa、bより大きいときはbが返ります。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:constrain(x, a, b)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

map

mapは、数値をある範囲から別の範囲に変換します。mapでは、次の計算で数値の変換が行われます。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:map(value, fromLow, fromHigh, toLow, toHigh)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

fromLowと同じ値を与えると、toLowが返り、fromHighと同じ値ならtoHighとなります。その中間の値は、2つの範囲の大きさの比に基づいて計算されます。

mapの書式は、次の通りです。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:map(value, fromLow, fromHigh, toLow, toHigh)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

mapの設定パラメータは次の通りです。

value: 変換したい数値
fromLow: 現在の範囲の下限
fromHigh: 現在の範囲の上限
toLow: 変換後の範囲の下限
toHigh: 変換後の範囲の上限

変換後の戻り値は、long型です。また 、mapは範囲外の値も切り捨てません。ある範囲のなかに収めたい場合は、constrain関数と併用します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:map(value, fromLow, fromHigh, toLow, toHigh)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

上は、次の様な例になっています。
(例)範囲の下限を上限より大きな値に設定し、値の反転に使用した例
y = map(x, 1, 50, 50, 1);

(例)範囲を指定するパラメータに負の数を使った例
y = map(x, 1, 50, 50, -100);

なお、map関数は整数だけを扱います。計算の結果、小数が生じる場合、小数部分は単純に切り捨てられます。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:map(value, fromLow, fromHigh, toLow, toHigh)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

上の例では、アナログ入力の10ビットの値を8ビットに丸めています。

pow

powは、べき乗の計算をします。パラメータは、次の通りです。

base: 底となる数値 (float)
exponent: 指数となる数値 (float)

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:pow(base, exponent)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

上の例では、10の1.5乗を計算しています。powは小数も扱えて指数関数的な値や曲線が必要なときに便利です。

sqrt

sqrtは、数値の平方根を返します。

Creative Commons Attribution-ShareAlike 3.0 License (CC BY-SA 3.0)
Arduino Reference:sqrt(x)” by Arduino Team, used under CC BY-SA 3.0/ easy labo made some changes and comments to the original

→その他のArduino関連情報

Sponsored Link