我想实时制作随机数生成器。
我有一个带有以下代码的arduino nano:
void setup() {
Serial.begin(9600);
randomSeed(analogRead(A0));
}
void loop() {
int randomNumber = random(1001);
Serial.println(randomNumber);
delay(1000);
}
我有用 python 编写的从这个 arduino 读取 COM 端口的代码。 这是代码:
import serial
ser = serial.Serial('COM5', 9600)
while True:
if ser.in_waiting > 0:
received_data = ser.readline().decode('utf-8').rstrip()
print("Received data:", received_data)
我进行了测试。我在 python 中运行该程序两次并得到这些值:
第一次 | 第二次 |
---|---|
收到数据:553 | 收到数据:553 |
收到数据:243 | 收到数据:243 |
收到数据:903 | 收到数据:903 |
收到数据:869 | 收到数据:869 |
接收数据:350 | 接收数据:350 |
收到数据:928 | 收到数据:928 |
接收数据:75 | 接收数据:75 |
收到数据:911 | 收到数据:911 |
收到数据:631 | 收到数据:631 |
接收数据:985 | 接收数据:985 |
我也尝试过这样设置:
void setup() {
Serial.begin(9600);
// Wait for a short period to allow the system to initialize
delay(100);
unsigned long seedValue = micros(); // Use micros() instead of millis()
Serial.print("Seed value: ");
Serial.println(seedValue);
randomSeed(seedValue);
}
为什么值会重复?它不会重新启动 Arduino。
如何让结果不同?
我不确定这是否有效。但是尝试在下面显示的代码中的数字位置使用这个“随机(最小值,最大值)”怎么样?
int randomNumber = random(1001);