For loop 如何在单个Arduino草图中建立多个随机数?

For loop 如何在单个Arduino草图中建立多个随机数?,for-loop,random,arduino,For Loop,Random,Arduino,我有一个Arduino草图,我计划用它控制8个LED以不同的速率闪烁或褪色。我想为我的输出引脚设置一个1-8random的随机数,为循环中的delay()值设置一个30-300的随机数,为控制淡入或淡出速度的+=X设置第三个随机数。我还想建立一个随机数,指示灯是闪烁还是熄灭(布尔随机数在这里可以工作…) 这就是我模糊的地方。从文档中,我收集到randomSeed()函数将驱动random(x,y),但似乎可以推断,我定义的所有random(x,y)值将在同一草图中使用相同的种子 似乎没有办法定义

我有一个Arduino草图,我计划用它控制8个LED以不同的速率闪烁或褪色。我想为我的输出引脚设置一个1-8random的随机数,为循环中的
delay()
值设置一个30-300的随机数,为控制淡入或淡出速度的
+=X设置第三个随机数。我还想建立一个随机数,指示灯是闪烁还是熄灭(布尔随机数在这里可以工作…)

这就是我模糊的地方。从文档中,我收集到
randomSeed()
函数将驱动
random(x,y)
,但似乎可以推断,我定义的所有
random(x,y)
值将在同一草图中使用相同的种子

似乎没有办法定义种子a驱动随机a,种子B驱动随机B。我读对了吗?我找不到任何符合我要求的样品

伪代码如下:

void setup() {
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    pinMode(9, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(7, OUTPUT);
    pinMode(6, OUTPUT);
    pinMode(5, OUTPUT);
    pinMode(4, OUTPUT);
}

void loop() {
#
#  How can I assocaiate pinSeed with pin, delaySeed with delay and velSeed with velocity?
#
    int pinSeed = RandomSeed(analogRead(0));
    int pin = Random1(4,13);
    int delaySeed = RandomSeed(analogRead(0));
    int delay = Random(30,200);
    int velSeed = RandomSeed(analogRead(0);
    int velocity = Random(1,21);
    for (i=0;i=255;+=velocity) {
        analogWrite(pin,i);
        delay(velocity);
    }
}

种子值设置随机(伪随机)数序列的起点。设置种子后,您可以绘制随机数,但不需要重置或重新定义种子以获得第二个随机数。通常,一个程序只需要生成一次种子

能够设置种子允许您在第二次、第三次等执行代码时重新创建随机数序列。这有助于调试

此外,返回的每个随机数可以标准化为不同的值范围,如1-8或30-300,并且当随机数标准化为1到10(例如)时,布尔值可以定义为<5(假)或>=5(真)


希望这能有所帮助。

我想我明白你的意思了:每次执行设置一次种子仍然允许我选择多个不同的随机数,而无需重新设定种子。第二次执行相同的代码将产生相同的多个不同的随机数。种子设定在每次执行时发生一次,而不是在生成随机数时发生一次。这基本上就是你刚才说的吗?:)@是的,这正是我的意思。为清晰起见,将进行编辑。