Arduino日本語リファレンス


// RandomWalk
// Paul Badger 2007

#define randomWalkLowRange -20
#define randomWalkHighRange 20
int stepsize;
int thisTime;
int total;

void setup() {
  Serial.begin(9600);
}

void loop() {
  stepsize = 5;
  thisTime = randomWalk(stepsize);
  Serial.println(thisTime);
  delay(10);
}

int randomWalk(int moveSize) {
  static int place;      // 現在位置(staticなので値が持続する)
  place = place + (random(-moveSize, moveSize + 1));

  if (place < randomWalkLowRange) {
    place = place + (randomWalkLowRange - place);
  } else if(place > randomWalkHighRange) {
    place = place - (place - randomWalkHighRange);
  }

  return place;
}



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [ドキュメント一覧]