📅  最后修改于: 2020-11-05 03:36:10             🧑  作者: Mango
要生成随机数,可以使用Arduino随机数函数。我们有两个功能-
函数randomSeed(seed)重置Arduino的伪随机数生成器。尽管random()返回的数字分布实际上是随机的,但该序列是可预测的。您应该将生成器重置为某个随机值。如果您没有连接模拟引脚,它可能会吸收周围环境的随机噪声。这些可能是无线电波,宇宙射线,手机的电磁干扰,荧光灯等。
randomSeed(analogRead(5)); // randomize using noise from analog pin 5
随机函数生成伪随机数。以下是语法。
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中的数字相同,但是具有不同的值。
一个字节由八位组成。
如果位是数字,则字节代表数字是逻辑上的。
可以对它们执行所有数学运算。
字节中的数字也没有相同的意义。
最左边的位具有最大值,即最高有效位(MSB)。
最右边的位具有最小的值,因此被称为最低有效位(LSB)。
由于可以用256种不同的方式组合八个零和一个字节的一个,因此,一个字节可以表示的最大十进制数为255(一个组合代表一个零)。