2013-08-09 1 views
0

저는 Arduino 스케치를 통해 8 개의 LED를 깜박이거나 다른 속도로 희미 해 지도록 제어하려고합니다. 루프 내에서 delay() 값의 경우 30-300 사이의 임의의 숫자와 페이드 인/아웃 속도를 제어 할 경우 +=X의 세 번째 임의의 숫자를 출력 핀의 1-8random에서 설정하고 싶습니다. 또한 불빛이 깜박이거나 사라지는지를 지시하는 무작위 숫자를 설정하고 싶습니다 (부울 무작위가 여기에서 작동합니다 ...).단일 Arduino 스케치에 여러 난수를 설정하는 방법은 무엇입니까?

여기 내가 모호합니다. 문서에서 randomSeed() 함수가 random(x,y)을 유도 할 것이라고 확신했지만 필자가 정의한 random(x,y) 값은 모두 동일한 스케치 내에서 동일한 시드를 사용하게됩니다.

시드 A를 랜덤 A를 구동하고 시드 B를 랜덤 B를 구동하는 것으로 정의하는 방법이없는 것처럼 보였습니다. 맞습니까? 내가하고 싶은 일을하는 샘플을 찾을 수 없었다. 아래

의사 코드는 :

void setup() { 
    pinMode(12, OUTPUT); 
    pinMode(11, OUTPUT); 
    pinMode(10, OUTPUT); 
    pinMode(9, OUTPUT); 
    pinMode(8, OUTPUT); 
    pinMode(7, OUTPUT); 
    pinMode(6, OUTPUT); 
    pinMode(5, OUTPUT); 
    pinMode(4, OUTPUT); 
} 

void loop() { 
# 
# How can I assocaiate pinSeed with pin, delaySeed with delay and velSeed with velocity? 
# 
    int pinSeed = RandomSeed(analogRead(0)); 
    int pin = Random1(4,13); 
    int delaySeed = RandomSeed(analogRead(0)); 
    int delay = Random(30,200); 
    int velSeed = RandomSeed(analogRead(0); 
    int velocity = Random(1,21); 
    for (i=0;i=255;+=velocity) { 
     analogWrite(pin,i); 
     delay(velocity); 
    } 
} 

답변

2

시드 값은 무작위 (랜덤 실제로 사이비) 숫자의 시퀀스의 시작점을 설정한다. 시드가 설정되면 난수를 그릴 수 있습니다. 시드를 다시 설정하거나 재정의하여 두 번째 난수를 얻지 마십시오. 일반적으로 시드는 프로그램에서 한 번만 생성되어야합니다.

시드를 설정할 수 있으므로 두 번째, 세 번째 등의 코드 실행시 임의의 숫자 시퀀스를 다시 만들 수 있습니다. 이것은 디버깅에 도움이됩니다!

또한 반환되는 각 난수는 1-8 또는 30-300에서와 같이 다른 값 범위로 정규화 할 수 있으며 부울 값은 < 5 (false) 또는> = 5 (true (예 : 1에서 10으로 정규화 된 경우).

희망이 도움이됩니다.

+0

나는 당신이 말하는 것을 얻는다 : PER EXECUTION이 끝날 때 시드를 설정하면 다시 시드하지 않고 여러 다른 난수를 선택할 수 있습니다. 동일한 코드를 두 번 실행하면 동일한 여러 개의 다른 난수가 생깁니다. 시드는 EXECUTION 당 1 회 발생하지만 난수 생성 당 1 회 발생하지는 않습니다. 그것은 기본적으로 당신이 말한 것입니까? :) – dwwilson66

+0

@ dwwilson66, 네, 그게 바로 제가 의미했던 것입니다. 명확성을 위해 편집합니다. – JackCColeman

관련 문제