Esta función nos permite para hacer el uso del control de valores, por ejemplo, tenemos un punto A y un punto B, tenemos el variador X, que se movera según sea el aumento de que le demos. Un ejemplo más claro es de un PWM donde tenemos de 0 a 255, el variador X tendra el valor según donde lo movemos.



                               X

                          V

A-------------------------------------------------B


Esta función es muy utíl, ya que por ejemplo la función FOR si tenemos de 0 a 255, y queremos que incremente, la función FOR incrementará pero si llega a 255 volverá a 0 e incrementerá; con esta función al momento que incremente y si llega al valor máximo, ya no incrementará.



int led = 10;

int kuro;

int incremento = 0;

int dato;

void setup(){

  pinMode(led, OUTPUT);

  Serial.begin(9600);

}

void loop(){

  dato = Serial.read();

 if (dato == 'a'){

   incremento++;

   incremento = constrain(incremento, 0, 255);

   analogWrite(led, incremento);

   Serial.println(incremento);

     delay(10);

 }

 if (dato == 's'){

   incremento--;

   incremento = constrain(incremento, 0, 255);

   analogWrite(led, incremento);

   Serial.println(incremento);

   delay(10);

 }

}