如何在Arduino中生成伪随机数

497 阅读3分钟

为了在Arduino中生成伪随机数,我们使用内置的函数random(),首先,了解为什么我们需要生成伪随机数?在现实生活中,我们必须生成随机码用于验证。同样地,在数字游戏中,我们必须生成随机密码。为了这个目的,我们必须在Arduino中生成随机数。

在这篇文章中,我们将讨论我们可以在实例的帮助下生成随机数的技术。

如何在Arduino中生成随机数

在Arduino中,有两个内置函数用于生成伪随机数。

  • random()
  • randomSeed()

我们将详细解释这两个函数。

random():这个函数用于通过定义数字的范围或任何特定的条件来生成伪随机数。使用随机()函数的一般语法是。

random(max)

根据这个语法,你必须定义一个整数,因此它将生成小于该特定数字的数字。为了理解这种语法的使用,请看这个例子。

int randomNumber;void setup(){

Serial.begin(9600);

}

void loop(){

randomNumber=random(500);

Serial.println(randomNumber);

delay(1000);

}


在上面的代码例子中,我们已经全局性地声明了一个int数据类型的变量,名称为 "randomNumber"。在void循环中,使用random()函数,我们在randomNumber中存储数值,并指定生成的数字应小于500。然后在串行通信的帮助下,我们将结果显示在串行监视器的输出上。最后,我们使用了延迟函数一秒钟。

代码的输出是。

每一秒钟都有一个随机数被显示。

使用随机()的另一种方式是指定范围。

random(min,max);

你必须通过提及最大和最小的限制,在指定的伪随机数范围内使用随机函数。所以生成的数字应该在指定的范围内,例如,我们考虑另一个例子。

int randomNumber;void setup(){

Serial.begin(9600);

}

void loop(){

randomNumber=random(100,500);

Serial.println(randomNumber);

delay(1000);

}


这个例子中使用的代码与上面的例子相同,唯一不同的是,我们指定生成的随机数的范围应该在100和500之间。该代码的输出结果将是。


randomSeed():另一个生成随机数的内置函数是使用 randomSeed() 函数。random()函数根据给它的输入范围生成伪随机数,而randomSeed()函数则从任何任意的数字生成数字。这两个函数的区别在于,随机()的输出有时是可预测的,而如果使用随机种子()函数,则不可能预测输出。randomSeed函数的语法是。

randomSeed(seed)

seed:一个无符号长数字

假设4号针脚是未连接的模拟针脚,那么该函数将被使用。

randomSeed(analogueRead(4));

randomSeed()在每次运行代码时都会产生一个不同的数字,以确保引脚是未连接的。

结论

为了在Arduino中生成伪随机数,我们可以使用Arduino的内置函数;随机()和随机种子()。这些函数生成的随机数可以用于Arduino的各种项目。在这篇文章中,我们通过例子解释了在Arduino中生成随机数的方法。