Arduino-random-numbers
提供:Dev Guides
Arduino-乱数
乱数を生成するには、Arduinoの乱数関数を使用できます。 私たちには2つの機能があります-
- randomSeed(シード)
- ランダム()
randomSeed(シード)
関数randomSeed(seed)は、Arduinoの擬似乱数ジェネレーターをリセットします。 random()によって返される数値の分布は本質的にランダムですが、シーケンスは予測可能です。 ジェネレーターをランダムな値にリセットする必要があります。 接続されていないアナログピンがある場合、周囲の環境からランダムノイズを拾う可能性があります。 これらは、電波、宇宙線、携帯電話からの電磁干渉、蛍光灯などです。
例
randomSeed(analogRead(5));//randomize using noise from analog pin 5
ランダム()
ランダム関数は、擬似乱数を生成します。 構文は次のとおりです。
random()ステートメントの構文
long random(max)//it generate random numbers from 0 to max
long random(min, max)//it generate random numbers from min to max
例
long randNumber;
void setup() {
Serial.begin(9600);
//if analog input pin 0 is unconnected, random analog
//noise will cause the call to randomSeed() to generate
//different seed numbers each time the sketch runs.
//randomSeed() will then shuffle the random function.
randomSeed(analogRead(0));
}
void loop() {
//print a random number from 0 to 299
Serial.print("random1=");
randNumber = random(300);
Serial.println(randNumber);//print a random number from 0to 299
Serial.print("random2=");
randNumber = random(10, 20);//print a random number from 10 to 19
Serial.println (randNumber);
delay(50);
}
ビットやバイトなどの基本的な概念についての知識を更新しましょう。
Bits
ビットは単なる2進数です。
- バイナリシステムは2桁の0と1を使用します。
- 数字の数字が同じ値を持たない10進数システムと同様に、ビットの「重要性」は2進数での位置に依存します。 たとえば、10進数666の数字は同じですが、値が異なります。
バイト
1バイトは8ビットで構成されます。
- ビットが数字の場合、バイトが数字を表すのは論理的です。
- それらに対してすべての数学演算を実行できます。
- バイト内の数字も同じ意味を持ちません。
- 左端のビットには、最上位ビット(MSB)と呼ばれる最大値があります。
- 右端のビットの値は最小であるため、最下位ビット(LSB)と呼ばれます。
- 1バイトの8つのゼロと1は256通りの方法で結合できるため、1バイトで表すことができる最大の10進数は255です(1つの組み合わせはゼロを表します)。