static
La palabra clave static se usa para crear variables que solo son visibles dentro de una función. Sin embargo a diferencia de las variables locales que se crean y destruyen cada vez que se invoca una función, las variables estatic persisten más allá de la llamada a la función, preservan sus datos entre llamadas a funciones.
Las variables declaradas como static sólo se crean e inicializan la primera vez que una función se llama.
 
#define randomWalkLowRange -20
#define randomWalkHighRange 20
int stepsize;
int thisTime;
void setup() {
  Serial.begin(9600);
}
void loop() {
  
  stepsize = 5;
  thisTime = randomWalk(stepsize);
  Serial.println(thisTime);
  delay(10);
}
int randomWalk(int moveSize) {
  static int place;  
  
  place = place + (random(-moveSize, moveSize + 1));
  if (place < randomWalkLowRange) {                              
    place = randomWalkLowRange + (randomWalkLowRange - place);   
  } else if (place > randomWalkHighRange) {
    place = randomWalkHighRange - (place - randomWalkHighRange); 
  }
  return place;
}
 
※ ARDUINO BUY RECOMMENDATION
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, 
DIYables .