ken789258 发表于 2012-7-12 14:52:28

关于random()

本帖最后由 ken789258 于 2012-7-13 11:32 编辑

为何我打http://arduino.cc/en/Reference/Random的程式码,我是用下面那一个randNumber = random(10, 20);,我也有加randomSeed(),不管他按几次reset他的数值都是11、19,15......这样按顺序下去,我想要让他随机,请问​​一下各位大大,有什么建​​议



ps我的板子是arduino mega(ATmega1280)

PureGold 发表于 2012-7-12 15:29:42

伪随机数。你得设置种子randomSeed
就用millis()做种子吧
环境杂波也行
long randNumber;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(0));
}
加上就好了

ken789258 发表于 2012-7-13 11:35:02

PureGold 发表于 2012-7-12 15:29 static/image/common/back.gif
伪随机数。你得设置种子randomSeed
就用millis()做种子吧
环境杂波也行


不好意思,我打错了
我有加randomSeed()

PureGold 发表于 2012-7-13 11:48:41

那应当证明了你的analogRead(0)非常稳定,是个固定的值,试试analogRead(1),analogRead(2),millis()。

PureGold 发表于 2012-7-13 11:50:27

PureGold 发表于 2012-7-13 11:48 static/image/common/back.gif
那应当证明了你的analogRead(0)非常稳定,是个固定的值,试试analogRead(1),analogRead(2),millis()。

也可以将A0口的电压改变,如放个放个光敏+热敏分压电路。。:D

麽麽茶㊣ 发表于 2012-7-13 15:21:45

switch(random(1,4)
{
    case 1: digitalWrite(2,HIGH);
    case 2: digitalWrite(3,HIGH);
    case 3: digitalWrite(4,HIGH);
}此状态长期有效

PureGold 发表于 2012-7-14 23:32:57

麽麽茶㊣ 发表于 2012-7-13 15:21 static/image/common/back.gif
此状态长期有效

什么意思,不太明白,好象也少个)
学习一下。

麽麽茶㊣ 发表于 2012-7-15 13:29:34

PureGold 发表于 2012-7-14 23:32 static/image/common/back.gif
什么意思,不太明白,好象也少个)
学习一下。

random(最小数值,最大数值)
最小数值为1 最大数值为case N的 N+1
将random这个函数作为switch的条件,进行随机条件判定,做出相应的状态反馈。

PureGold 发表于 2012-7-15 19:04:10

你说的我都知道,我不知道的是“此状态长期有效”是什么意思以及它和楼主所问问题的关联之处

麽麽茶㊣ 发表于 2012-7-15 20:30:52

PureGold 发表于 2012-7-15 19:04 static/image/common/back.gif
你说的我都知道,我不知道的是“此状态长期有效”是什么意思以及它和楼主所问问题的关联之处

=。= 我只是想说这个写法是对的。。哎。。不要理我了

PureGold 发表于 2012-7-16 12:15:57

麽麽茶㊣ 发表于 2012-7-15 20:30 static/image/common/back.gif
=。= 我只是想说这个写法是对的。。哎。。不要理我了

哦:L,我说怎么看不明白
页: [1]
查看完整版本: 关于random()