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