在 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+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.