# Constrain Utility. Making constrained variables.

I’ve made a new utility called Constrain. It is inspired by this post.

This will help creating variables that are constrained throughout the program. (At least throughout the scope of the variable.)

Example Sketch:

/*
||
|| @author Alexander Brevig
|| @versin 1.0 Beta
||
*/

#include <Constrain.h>

Constrained constrainedFloat( 0.2 , 0.0 , 1.0 );
Constrained constrainedByte( 2 , 0 , 10 );

void setup(){
Serial.begin(9800);
Serial.println(“We have two constrained variables. \n\tThe first is a float, constrained to be within [0,1].\n\tThe other is a byte that is constrained to be within [0,10]”);
Serial.println(“Setting the variables to 0”);
//set/reset the variable
constrainedByte = 0;
constrainedFloat = 0;
Serial.println(“Trying to make the variables exceed the constraint”);
for(byte i=0; i<12; i++){
Serial.print(constrainedFloat.value); //access value
Serial.print(" “);
Serial.println(constrainedByte.value,DEC);
constrainedFloat += 0.1;
constrainedByte++;
}
Serial.println(“Trying to make the variables go below the constraint”);
for(byte i=0; i<12; i++){
Serial.print(constrainedFloat.value);
Serial.print(” ");
Serial.println(constrainedByte.value,DEC);
constrainedFloat -= 0.1;
constrainedByte–;
}
}

void loop(){}

Example Serial Output:

We have two constrained variables.
The first is a float, constrained to be within [0,1].
The other is a byte that is constrained to be within [0,10]
Setting the variables to 0
Trying to make the variables exceed the constraint
0.00 0
0.10 1
0.20 2
0.30 3
0.40 4
0.50 5
0.60 6
0.70 7
0.80 8
0.90 9
1.00 10
1.00 10
Trying to make the variables go below the constraint
1.00 10
0.90 9
0.80 8
0.70 7
0.60 6
0.50 5
0.40 4
0.30 3
0.20 2
0.10 1
0.00 0
0.00 0