Arduino - 隨機數



要生成隨機數,您可以使用 Arduino 隨機數函式。我們有兩個函式:

  • randomSeed(seed)
  • random()

randomSeed (seed)

函式 `randomSeed(seed)` 重置 Arduino 的偽隨機數生成器。雖然 `random()` 返回的數字分佈本質上是隨機的,但序列是可預測的。您應該將生成器重置為某個隨機值。如果您有一個未連線的模擬引腳,它可能會從周圍環境中拾取隨機噪聲。這些可能是無線電波、宇宙射線、來自手機、熒光燈等的電磁干擾。

示例

randomSeed(analogRead(5)); // randomize using noise from analog pin 5

random( )

`random` 函式生成偽隨機數。以下是語法。

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);
}

現在讓我們回顧一下一些基本概念,例如位和位元組。

位只是一個二進位制數字。

  • 二進位制系統使用兩個數字,0 和 1。

  • 類似於十進位制數系統,其中一個數字的數字不具有相同的值,“位”的“意義”取決於其在二進位制數中的位置。例如,十進位制數 666 中的數字相同,但值不同。

Bits

位元組

一個位元組由八位組成。

  • 如果位是數字,那麼位元組代表數字是合乎邏輯的。

  • 所有數學運算都可以對它們執行。

  • 位元組中的數字也沒有相同的意義。

  • 最左邊的位具有最大的值,稱為最高有效位 (MSB)。

  • 最右邊的位具有最小值,因此稱為最低有效位 (LSB)。

  • 由於一個位元組的八個零和一可以以 256 種不同的方式組合,因此一個位元組可以表示的最大十進位制數是 255(一種組合表示零)。

廣告