Példa
A kód véletlen számokat generál és megjeleníti azokat.
long randNumber;
void setup() {
Serial.begin(9600);
// ha a 0. analóg bemeneti kivezetés nincs csatlakoztatva, a
// véletlenszerű analóg zaj hatására a randomSeed() hívása különböző
// magszámokat generál minden alkalommal, amikor a vázlat fut.
// a randomSeed() ezután megkeveri a véletlenszerű függvényt.
randomSeed(analogRead(0));
}
void loop() {
// nyomtat egy véletlen számot 0-tól 299-ig
randNumber = random(300);
Serial.println(randNumber);
// nyomtat egy véletlen számot 10-től 19-ig
randNumber = random(10, 20);
Serial.println(randNumber);
delay(50);
}
Megjegyzések és figyelmeztetések
Ha fontos, hogy a random()
által generált értéksorozat eltérjen egy vázlat későbbi végrehajtásakor, használja a randomSeed()
-et a véletlenszám-generátor inicializálásához egy meglehetősen véletlenszerű bemenettel, mint például az analogRead()
egy nem csatlakoztatott pinen.
Ezzel szemben alkalmanként hasznos lehet pontosan ismétlődő pszeudo-véletlen sorozatokat használni. Ezt úgy érheti el, hogy a randomSeed()
függvényt egy fix számmal hívja meg, mielőtt elindítaná a véletlenszerű számsort.
A max
paramétert annak a változónak az adattípusa szerint kell kiválasztani, amelyben az értéket tároljuk. Mindenesetre a generált érték abszolút maximuma long
esetén (32 bit - 2 147 483 647). A max
érték magasabbra állítása nem okoz hibát a fordítás során, de a vázlat végrehajtása során a generált számok nem az elvárásoknak megfelelően alakulnak.