在 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);
广告