randomSeed()
Описание
randomSeed() инициализирует генератор псевдослучайных чисел, заставляя его начинать с произвольной точки в случайной последовательности. Эта последовательность, хотя и очень длинная и случайная, всегда одинакова.
Если важно, чтобы последовательность значений, генерируемых random(), отличалась при каждом запуске скетча, используйте randomSeed() для инициализации генератора случайных чисел достаточно случайным входным значением, например analogRead() на неподключённом пине.
И наоборот, иногда бывает полезно использовать псевдослучайные последовательности, которые повторяются точно. Этого можно добиться, вызвав randomSeed() с фиксированным числом перед началом случайной последовательности.
Синтаксис
Используйте следующую функцию для установки начального числа инициализации генератора случайных чисел:
randomSeed(seed)
Параметры
Функция принимает следующий параметр:
seed: ненулевое число для инициализации псевдослучайной последовательности. Допустимые типы данных:unsigned long.
Возвращаемое значение
Функция ничего не возвращает.
Пример кода
Код генерирует случайные числа, используя начальное число, и выводит их в монитор порта.
long randNumber;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop() {
randNumber = random(300);
Serial.println(randNumber);
delay(50);
}
Примечания и предупреждения
Предупреждение
Если seed равен 0, randomSeed(seed) не будет иметь никакого эффекта.