아두이노 랜덤 숫자(난수)생성 함수, random(), randomSeed()
MCU 공부/아두이노 레퍼런스 Arduino Reference2020. 5. 22. 08:15
아두이노에서 랜덤 숫자(난수)를 생성하는 함수인 random()에 대해 알아보겠습니다.
정의
랜덤 함수는 난수를 생성합니다.
random(max)
random(min, max)
매개 변수
min: 임의 값의 하한값 (포함)입니다 (선택 사항).
max: 임의의 값의 상한이며 배타적입니다.
min과 max-1 사이의 난수입니다. 데이터 유형 : long.
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
long randNumber;
void setup() {
Serial.begin(9600);
// if analog input pin 0 is unconnected, random analog
// noise will cause the call to randomSeed() to generate
// different seed numbers each time the sketch runs.
// randomSeed() will then shuffle the random function.
randomSeed(analogRead(0));
}
void loop() {
// print a random number from 0 to 299
randNumber = random(300);
Serial.println(randNumber);
// print a random number from 10 to 19
randNumber = random(10, 20);
Serial.println(randNumber);
delay(50);
}
|
랜덤한 숫자가 생성된 것을 확인 할 수 있습니다.
random()이후에 스케치를 실행할 때에 의해 생성 된 일련의 값 이 달라야하는 경우, 연결되지 않은 핀 randomSeed()과 같이 임의의 입력으로 난수 생성기를 초기화하는 데 사용 하십시오 analogRead().
반대로, 정확하게 반복되는 의사 랜덤 시퀀스를 사용하는 것이 유용한 경우가 있습니다. randomSeed()임의 순서를 시작하기 전에 고정 번호 로 호출 하면됩니다.
max파라미터 값을 저장하는 변수의 데이터 타입에 따라 선택되어야한다. 어쨌든, 절대 최대 long값은 생성 된 값 의 특성 (32 비트-2,147,483,647)에 바인딩됩니다 . 더 높은 값으로 설정 하면 컴파일 중에 오류가 발생하지 않지만 스케치 실행 중에 생성 된 숫자는 예상과 다릅니다.
randomSeed()는 의사 난수 생성기를 초기화하여 임의 순서의 임의의 지점에서 시작합니다.
randomSeed(seed)
seed: 의사 난수 시퀀스를 초기화하는 숫자입니다. 허용되는 데이터 유형 : unsigned long.
'MCU 공부 > 아두이노 레퍼런스 Arduino Reference' 카테고리의 다른 글
아두이노 출력 값 범위 제한함수, constrain() (0) | 2020.05.22 |
---|---|
아두이노 절대 값 계산, abs() (0) | 2020.05.22 |
아두이노 밀리 단위 실행시간 측정, millis() (0) | 2020.05.21 |
아두이노 마이크로 단위 실행시간 측정, micros() (0) | 2020.05.20 |
아두이노 마이크로 초 딜레이 함수, delayMicroseconds () (0) | 2020.05.19 |
댓글()