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


Arduino 中的 constrain() 函数顾名思义,可以将数字限制在上限和下限之间。

语法

constrain(val, min, max)

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

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

示例

以下示例说明了此函数的使用:

void setup() {
   // put your setup code here, to run once:
   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() {
   // put your main code here, to run repeatedly:
}

输出

串口监视器输出如下所示:

如您所见,在第一种情况下,整数 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);

更新于: 2021年5月31日

4K+ 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告