NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(random関数の使い方)

random関数
 random関数は疑似乱数を生成します。
 完全にランダムな数字が必要な場合は、random関数を実行する前に空きアナログポートをanalogRead関数で読み込んだ値の様な、真にランダムな値を用いて、randomSeed関数を実行します。

 Arduino IDEで使用するrandom関数の使い方は以下の通りです。
 試しにこのプログラムをArduino UNOで実行すると、13ピンのLEDが1秒未満の周期で完全に不規則な間隔で点滅します。
 ※以下プログラム中からrandomSeed(analogRead(0))の一文を抜いてもLEDは一見ランダムに点滅しますが、Arduinoを再起動すると、再起動前と同一な周期でLEDが点滅します。この為random関数は疑似乱数と言われています。
void setup() {                            //一回だけ実行する
    pinMode(13, OUTPUT);           //LEDを接続した13番ピンを出力用に設定する
}
void loop() {                              //{}内を無限ループで実行する
    randomSeed(analogRead(0)); // 未接続ピンのノイズを利用
    int i=random (1000);             //iに0~999の整数で生成した乱数を代入する。
    digitalWrite(13, HIGH);           //LEDが接続された13番ピンをHIGH(5V)にする
    delay(i);                                //iミリ秒LEDを点灯した状態で止める
    digitalWrite(13, LOW);           //LEDが接続された13番ピンをLOW(0V)にする
    delay(1000-i);                       //1000-iミリ秒LEDを消灯した状態で止める
}
random(min,max)のパラメータ
min :  生成する乱数の下限。省略可能 
max  :  生成する乱数の上限 

戻り値:minからmax-1の間の整数 (long) 

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/