要生成隨機數(shù),可以使用Arduino隨機數(shù)函數(shù)。我們有兩個函數(shù):
randomSeed(seed)函數(shù)重置Arduino的偽隨機數(shù)生成器。雖然random()返回的數(shù)字的分布本質(zhì)上是隨機的,但是順序是可預(yù)測的。你應(yīng)該將發(fā)生器重置為某個隨機值。如果你有一個未連接的模擬引腳,它可能會從周圍環(huán)境中拾取隨機噪音。這些可能是無線電波,宇宙射線,手機的電磁干擾,熒光燈等。
randomSeed(analogRead(5)); // randomize using noise from analog pin 5
random函數(shù)生成偽隨機數(shù)。以下是語法。
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); }
讓我們現(xiàn)在重溫我們對一些基本概念的知識,例如位和字節(jié)。
位只是一個二進制數(shù)字。
二進制系統(tǒng)使用兩個數(shù)字,0和1。
與十進制數(shù)字系統(tǒng)類似,數(shù)字的位數(shù)不具有相同的值,位的“意義"取決于其在二進制數(shù)中的位置。例如,十進制數(shù)666中的數(shù)字相同,但具有不同的值。
一個字節(jié)由8位組成。
如果一個位是一個數(shù)字,邏輯上字節(jié)表示數(shù)字。
可以對它們執(zhí)行所有數(shù)學(xué)運算。
一個字節(jié)中的數(shù)字也不具有相同的意義。
最左邊的位具有被稱為最高有效位(MSB)的最大值。
最右邊的位具有最小值,因此稱為最低有效位(LSB)。
由于可以以256種不同的方式組合一個字節(jié)的八個0和1,所以可以由一個字節(jié)表示的最大十進制數(shù)是255(一個組合表示零)。
更多建議: