Atsitiktinių skaičių generavimas

Arduino atsitiktinių skaičių generavimui naudoja dvi funkcijas:

  • randomSeed(seed)
  • random()

randomSeed(seed)

Funkcija randomSeed(seed) – nepaisant to, kad random funkcijos gražinami skaičiai yra visiškai atsitiktiniai, tačiau pats funkcijos veikimas ir gražinama skaičių seka ilgainiui tampa nuspėjama. Šiai problemai spręsti galime naudoti randomSeed (seed) funkciją. Jei turite neprijungtą analoginį kaištį, jis gali paimti atsitiktinį triukšmą iš aplinkos. Tai gali būti radijo bangos, kosminiai spinduliai, mobiliųjų telefonų elektromagnetiniai trukdžiai, fluorescencinės lempos ir pan. Toks atsitiktinis triukšmas randomSeed() funkcijoje bus naudojamas, kaip parametras generuojant atsitiktinius skaičius.

Pavyzdys:

randomSeed(analogRead(5));

random( )

Random() funkcijos veikimo principas itin elementarus – funkcija grąžina atsitiktinius skaičius. Norint gauti tikslesnes grąžinamas vertes galima šia funkciją vykdyti su parametrais kaip nurodyta pavyzdyje.

long random(max) // vietoje max įrašykite norimą skaičių, o funkciją grąžins atsitiktinį skaičių nuo 0 iki jūsų nurodyto skaičiaus - max

long random(min, max) // galima kaip parametrą naudoti ir minimalų skaičių taip nustatant apatine rėžio verte.

Funkcijų panaudojimo pavyzdys

long randNumber;

void setup() {

Serial.begin(9600);

 // jei analoginis kaištis 0 neprijungtas

// atsitiktinis triukšmas sugeneruos randomSeed() iškvietimą

// kaskart paleidžiant programą gausime skirtingą pradinį skaičių

randomSeed(analogRead(0));

}

void loop() {

Serial.print("random1=");

randNumber = random(500);

Serial.println(randNumber); // spausdinsime skaičių nuo 0 iki 499

Serial.print("random2=");

randNumber = random(50, 100); // spausdinsime skaičių nuo 50 iki 99

Serial.println (randNumber);

delay(50);

}


Socialiniai tinklai
Pasiekite mūsų bendruomenę socialinėje erdvėje
Siekiame suburti tvirta ir draugiška bendruomene socialiniuose tinkluose, kuri bus pasiekiama ir atvira visiems.
Facebook
Youtube
Github
Codepen
LinkedIn
Instagram
Bendruomenė
Arduinopagalba.lt
Nesvarbu ar tu ieškai informacijos ar nori ją perduoti, mūsų bendruomenėje laukiami visi. Siekiame, kad projektas ne tik teiktų informaciją, bet ir padėtų surasti bendraminčius.
Prisijungti