(Macro) Constrains a number to be within a range.


constrain(x, a, b)


x: the number to constrain

a: the lower end of the range

b: the upper end of the range


x: if x is between a and b

a: if x is less than a

b: if x is greater than b


// limits range of sensor values to between 10 and 150:
sensVal = constrain(sensVal, 10, 150);


Because of the way constrain() is implemented, avoid using other functions or causing side effects inside the parentheses, as it may lead to incorrect results:

constrain(x,a++,b);   // avoid this - yields incorrect results

constrain(x,a,b);     // use this instead-
a++;                  // keep other math outside constrain()

Arduino Compatibility

Maple’s implementation of constrain() is compatible with Arduino.

See Also

License and Attribution

Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.