constrain()

Last revision:2025/05/01

名称

constrain()

説明

数値をある範囲に制限する。この関数の入力は、例えば、モーターの位置を制御するためのセンサーの値で、関数の上下限が移動可能な物理値に対応する。

書式

与えられた値の範囲を制限するには、以下の関数を使う。

constrain(x, a, b);

引数

この関数は以下の引数を受け付ける。

x範囲を制限したい数値(任意の型)
a範囲の下限値(任意の型)
b範囲の上限値(任意の型)

戻り値

xxがaとbとの間にあるとき
axがaより小さいとき
bxがbより大きいとき

コード例

以下のコードは、エミュレートしたセンサーの値を設定し、制限された結果をシリアルモニターに表示する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
int sensVal = 50;  // try with 170 and 5 to verify the functionality

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

  sensVal = constrain(sensVal, 10, 150);  // limits range of sensor values between 10 and 150

  Serial.print("The sensor value is: ");
  Serial.println(sensVal);
}

void loop() {
}

注意

constrain()はマクロとして実装されているため、引数に他の関数を使わないようにすること。そのような使い方をすると、意図しない結果になることがある。

以下のコードは誤った結果となる。

1
int constrainedInput = constrain(Serial.parseInt(), minimumValue, maximumValue);   // avoid this

以下のようにすること。

1
2
int input = Serial.parseInt();  // keep other operations outside the constrain function
int constrainedInput = constrain(input, minimumValue, maximumValue);

参照

オリジナルのページ

https://docs.arduino.cc/language-reference/en/functions/math/constrain/

実装の解析

まだ解析していません。

最終更新日

July 12, 2026

inserted by FC2 system