在 Arduino 中将数字限制在给定范围内

arduinoarduino boardsarduino idearduino programming language

Arduino 中的 constrain() 函数有助于(顾名思义)将数字限制在上限和下限之间。

语法

constrain(val, min, max)

其中,val 是要限制的数字,min 是下限值,max 是上限值

如果 val 小于 min,此函数将返回 min。如果 val 大于 max,此函数将返回 max。只要 val 在 min 和 max 之间,此函数就会返回 val。

示例

以下示例说明了此函数 − 的用法

void setup() {
   // 将您的设置代码放在此处,运行一次:
   Serial.begin(9600);
   Serial.println();

   int a = 200;
   Serial.println(constrain(a, 5, 210));
   Serial.println(constrain(a, 300, 400));
   Serial.println(constrain(a, 100, 150));
}

void loop() {
   // 将您的主代码放在此处,以便重复运行:
}

输出

串行监视器输出如下所示 −

如您所见,在第一种情况下,整数 a 在界限内,因此它被返回。在第二种情况下,a 小于下限,因此返回下限,在第三种情况下,a 高于上限,因此返回上限。

请注意,根据 Arduino 的文档(https://www.arduino.cc/reference/en/language/functions/math/constrain/),建议避免在 constrain 中使用其他函数。

此 constrain (analogRead(A0), 10,50); 可能会产生不正确的结果。相反,您可以尝试 −

int a = analogRead(A0);
int a_constr = constrain(a, 10, 50);

相关文章