Программирование Arduino — Псевдослучайные числа


1. Программирование Arduino — введение
2. Структура программы, константы
3. Цифровой ввод/вывод
4. Аналоговый ввод/вывод
5. Дополнительные функции ввода/вывода
6. Работа со временем
7. Математические функции

8. Псевдослучайные числа

рассмотрим специфичные функции Arduino для работы с псевдослучайными числами

void randomSeed(unsigned int seed)

Описание:
randomSeed () инициализирует генератор псевдослучайных чисел, в результате чего генерация начинается с произвольного числа псевдослучайной последовательности.

Если важно, чтобы последовательность значений сгенерированной функцией random() отличались друг от друга при разных запусках скетча – можно вызывать randomSeed () для инициализации генератора псевдослучайных чисел с параметром, считываемым с помощью analogRead () из незадействованного порта.

Наоборот, иногда может быть полезно использовать псевдослучайную последовательность, которые точно повторяются. Это можно сделать, вызывая randomSeed () с фиксированным числом.

Параметры:
unsigned int seed – число для инициализации генератора псевдослучайных чисел

Пример:

long randNumber;

void setup(){
  Serial.begin(9600);
  randomSeed(analogRead(0));
}

void loop(){
  randNumber = random(300);
  Serial.println(randNumber);
  delay(50);
}

long random(long howbig)
long random(long howsmall, long howbig)

Описание:
Генерирует псевдослучайное число

Параметры:
min – нижняя граница случайных чисел, (включая)
max — верхняя граница случайных чисел, (не включая)

Возвращаемое значение:
случайное число(тип long) между min и max–1

Пример:

long randNumber;

void setup(){
  Serial.begin(9600);

  // если аналоговый порт 0 не подключён, случайный аналоговый
  // шум будет заставлять randomSeed() генерировать
  // разные псевдослучайные числа при каждом запуске скетча
  randomSeed(analogRead(0));
}

void loop() {
  // печать случайного числа от 0 до 299
  randNumber = random(300);
  Serial.println(randNumber);  

  // печать случайного чмсла от 10 до 19
  randNumber = random(10, 20);
  Serial.println(randNumber);

  delay(50);
}

читать далее: 9. Последовательная передача данных

Ссылки
http://arduino.cc/en/Reference/HomePage (или же в каталоге ArduinoIDE \reference\HomePage.html )


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение