从给定的随机数组值生成随机数 Arduino程序C++
Generate random numbers from given random array values Arduino program C++
我正在尝试从我创建的数组中的给定值为 LED 生成随机输出,但它不起作用,我在网上找到了这个,他们说像下面这样做,但它什么也没做。程序应该从数组中获取一个随机值。
int randomArray[4] = { 0,85,170,255 };
void setup() {
Serial.begin(9600);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(RLed, OUTPUT);
pinMode(YLed, OUTPUT);
pinMode(GLed, OUTPUT);
randomSeed(millis());
}
void loop() {
redvalue = randomArray[random(0,3)];
bluevalue = randomArray[random(0, 3)];
greenvalue = randomArray[random(0, 3)];
Serial.println(redvalue);
Serial.println(bluevalue);
Serial.println(greenvalue);
analogWrite(red, redvalue);
analogWrite(blue, bluevalue);
analogWrite(green , greenvalue);
analogWrite(RLed, redvalue);
analogWrite(YLed, bluevalue);
analogWrite(GLed, greenvalue);
delay(1000);
}
如果你想要数组的随机元素,你必须使用随机索引。
如果您的数组中有 4 个值,索引必须在区间 [0-3] 内。
来自Arduino参考:
随机(最大(
随机(最小值、最大值(
参数 min:随机值的下限,包含(可选(。 max:随机值的上限,独占。
返回介于 min 和 max-1 之间的随机数。数据类型:长整型。
int randomArray[4] = {0, 85, 170, 255};
int randIndex = (int)random(0, 4);
int randElem = randomArray[randIndex];
应该可以解决问题,但我的C++有点生疏。 您可能可以省略 int 强制转换。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 整数不会重复超过随机数
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 人脸跟踪arduino代码的优化
- if数组上的随机数
- vscode下的Arduino代码出现意外编译错误
- 在将数字随机生成为数组期间从内存输出随机数的数组
- Arduino从Txt读取整数
- Arduino C++在构造函数中用参数声明对象数组
- C++ Boost::asio串行通信与Arduino无法写入
- 半随机数生成C++
- Arduino millis() - millis() 怎么能等于 0 以外的任何东西?
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 在Arduino中将PWM通道命名为LEDC是否有特定原因
- 'val' Arduino 错误代码之前的预期'('
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 有没有办法在 c++ 中同时生成随机数?如果没有,是否有解决方法?
- 从给定的随机数组值生成随机数 Arduino程序C++
- 如何防止每次 Arduino 启动时颜色数组都是相同的随机数组