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 個
0
和1
可以以 256 種不同的方式組合,因此可以用一個位元組表示的最大十進位制數是 255。