Arduino进阶03.Arduino 随机数

要生成随机数,可以使用Arduino随机数函数。我们有两个函数:

  • randomSeed(seed)
  • random()

randomSeed(seed)

randomSeed(seed)函数重置Arduino的伪随机数生成器。虽然random()返回的数字的分布本质上是随机的,但是顺序是可预测的。你应该将发生器重置为某个随机值。如果你有一个未连接的模拟引脚,它可能会从周围环境中拾取随机噪音。这些可能是无线电波,宇宙射线,手机的电磁干扰,荧光灯等。

例子

randomSeed(analogRead(5)); // randomize using noise from analog pin 5

random()

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);
}

让我们现在重温我们对一些基本概念的知识,例如位和字节。

Bit(位)

位只是一个二进制数字。

  • 二进制系统使用两个数字,0和1。
  • 与十进制数字系统类似,数字的位数不具有相同的值,位的“意义”取决于其在二进制数中的位置。例如,十进制数666中的数字相同,但具有不同的值。
Bits

字节

一个字节由8位组成。

由于可以以256种不同的方式组合一个字节的八个0和1,所以可以由一个字节表示的最大十进制数是255(一个组合表示零)。

如果一个位是一个数字,逻辑上字节表示数字。

可以对它们执行所有数学运算。

一个字节中的数字也不具有相同的意义。

最左边的位具有被称为最高有效位(MSB)的最大值。

最右边的位具有最小值,因此称为最低有效位(LSB)。

发布者:suiyublg,转转请注明出处:https://huibian.net/1303-2/

(60977)
suiyublg的头像suiyublg
上一篇 2017年4月6日 15:51
下一篇 2017年4月8日 23:43

相关推荐

  • Arduino教程33.Arduino micros()函数

    micros()函数返回Arduino板开始运行当前程序时的微秒数。该数字在大约70分钟后溢出,即回到零。在16 MHz Arduino板(例如Duemilanove和Nano)上,此函数的分辨率为4微秒(即返回值总是4的倍数)。在8 MHz Arduino板(例如LilyPad)上,此函数的分辨率为8微秒。 micros()函数语法 micros () ;…

    2017年3月29日
    16000
  • Arduino教程19.Arduino 复合运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 自增 ++ 自增运算符,将整数值增加1 A++ 将得出11 自减 — 自减运算符,将整数值减1 A– 将得出9 复合加 += 加且赋值运算符。把右边操作数加上左边操作数的结果赋值给左边操作数。 B += A等效于B = B + A 复合减 -= 减且赋…

    2017年3月23日
    16800
  • Arduino教程30.Arduino delay()函数

    delay()函数的工作方式非常简单。它接受单个整数(或数字)参数。此数字表示时间(以毫秒为单位)。当程序遇到这个函数时,应该等到下一行代码。然而,问题是,delay()函数并不是让程序等待的好方法,因为它被称为阻塞(blocking)函数。 delay()函数语法 delay (ms) ; 其中, ms 是以毫秒为单位暂停的时间(无符号…

    2017年3月29日
    18000
  • Arduino声音01.Arduino 音调库

    在本章中,我们将使用Arduino音调库。它只是一个Arduino库,可以在任意Arduino引脚上产生指定频率(50%占空比)的方波。持续时间可以有选择的指定,否则方波会一直持续到stop()函数被调用。该引脚可以连接到压电蜂鸣器或扬声器播放音调。 警告 – 不要将引脚直接连接到任何音频输入。电压远远高于标准线路电压,并可能损坏声卡输…

    2017年4月29日
    46700
  • Arduino电机控制02.Arduino 伺服电机

    伺服电机是一种有输出轴的小型设备。通过向伺服发送编码信号,可以将该轴定位到特定的角度位置。只要编码信号存在于输入线上,伺服将保持轴的角位置。如果编码信号改变,则轴的角位置改变。实际上,伺服用于无线电控制的飞机中来定位控制面,如升降舵和方向舵。它们还用于无线电控制的汽车,木偶,当然还有机器人。 伺服在机器人中非常有用。电机体积小,内置控制电路,相对于它们尺寸来…

    2017年4月27日
    33400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(13条)

  • Mr. W的头像
    Mr. W 2017年11月7日 12:23

    123

    • Mr. W的头像
      Mr. W 2017年11月9日 09:44

      @Mr. W123123

    • Mr. W的头像
      Mr. W 2017年11月9日 09:44

      @Mr. W123123444444

    • Mr. W的头像
      Mr. W 2017年11月9日 09:44

      @Mr. Whhhh

    • Mr. W的头像
      Mr. W 2017年11月9日 09:45

      @Mr. Wjjjjjjjjj

    • Mr. W的头像
      Mr. W 2017年11月9日 09:45

      @Mr. Wfffffsfddfd

    • Mr. W的头像
      Mr. W 2017年11月9日 09:46

      @Mr. W999999

    • Mr. W的头像
      Mr. W 2017年11月9日 09:45

      @Mr. Weqwrffdsfdsafdsfdssfdsfd

    • Mr. W的头像
      Mr. W 2017年11月9日 09:46

      @Mr. W666666

  • Mr. W的头像
    Mr. W 2017年11月9日 09:44

    ffff

  • hony的头像
    hony 2017年11月29日 22:10

    我看看

  • ♔悠雨的头像
    ♔悠雨 2017年12月15日 09:39

    j

  • ♔悠雨的头像
    ♔悠雨 2017年12月15日 09:40

    alert(0)

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!