Arduino - 隨機數

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

  • randomSeed(seed)
  • random()

randomSeed(seed)

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

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

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 中的數字相同,但具有不同的值。

位

位元組

一個位元組由 8 位組成。

  • 如果位是一位數,則位元組表示數字是合乎邏輯的。

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

  • 位元組中的數字也不具有相同的含義。

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

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

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