这个例程展示如何使用断开连接的A0端口ADC读数。
在对程序进行加密过程中,我们常常会用到随机数,怎样在OCROBOT控制板中获取随机数呢?
获取随机数我们需要一个种子,这个种子我们可以使用断开连接的A0端口ADC读数。
把A0端口的读数作为随机数种子,产生一个最大值不超过600的随机数。
long randNumber; void setup(){ Serial.begin(9600); randomSeed(analogRead(A0)); } void loop(){ randNumber = random(600); Serial.println(randNumber); delay(200); }
产生的随机数除了可以限制最大值,还可以同时限制最小值。 每次首先输出一个最大值不超过300的随机数,然后输出一个10到19之间的随机数。
long randNumber; void setup(){ Serial.begin(9600); //如果模拟输入引脚0为断开,随机的模拟噪声 //将会调用randomSeed()函数在每次代码运行时生成 //不同的种子数值。 //randomSeed()将随机打乱random函数。 randomSeed(analogRead(0)); } void loop() { //打印一个0到299之间的随机数 randNumber = random(300); Serial.println(randNumber); //打印一个10到19之间的随机数 randNumber = random(10, 20); Serial.println(randNumber); delay(200); }
randomSeed(seed) 描述: 使用randomSeed()初始化伪随机数生成器,使生成器在随机序列中的任意点开始。这个序列,虽然很长,并且是随机的,但始终是同一序列。 如需要在一个random()序列上生成真正意义的随机数,在执行其子序列时使用randomSeed()函数预设一个绝对的随机输入,例如在一个断开引脚上的analogRead()函数的返回值。
反之,有些时候伪随机数的精确重复也是有用的。这可以在一个随机系列开始前,通过调用一个使用固定数值的randomSeed()函数来完成。
参数: long,int – 通过数字生成种子。 random(): 描述: 使用random()函数将生成伪随机数。 语法: random(max) random(min, max) 参数: min – 随机数的最小值,随机数将包含此值。 (此参数可选) max – 随机数的最大值,随机数不包含此值。 返回: min和max-1之间的随机数( 数据类型为long ) 注意: 如需要在一个random()序列上生成真正意义的随机数,在执行其子序列时使用randomSeed()函数预设一个绝对的随机输入,例如在一个断开引脚上的analogRead()函数的返回值。
反之,有些时候伪随机数的精确重复也是有用的。这可以在一个随机系列开始前,通过调用一个使用固定数值的randomSeed()函数来完成。