Beispielcode
Der Code generiert Zufallszahlen und zeigt sie an.
long randNumber;
void setup() {
Serial.begin(9600);
// Wenn der analoge Eingangspin 0 nicht verbunden ist, wird zufälliges analoges
// Rauschen mit randomSeed() benutzt, um verschiedene Seed-Zahlen bei jedem
// Lauf des Sketches zu generieren.
// randomSeed() ruft dann die random()-Funktion auf.
randomSeed(analogRead(0));
}
void loop() {
// Eine Zufallszahl zwischen 0 und 299 ausgeben
randNumber = random(300);
Serial.println(randNumber);
// Eine Zufallszahl zwischen 10 und 19 ausgeben
randNumber = random(10, 20);
Serial.println(randNumber);
delay(50);
}
Anmerkungen und Warnungen
Wenn es für eine von random()
erzeugte Folge von Werten wichtig ist, dass diese bei nachfolgenden Ausführungen eines Sketches unterschiedlich ist,
verwende randomSeed()
, um den Zufallszahlengenerator mit einer ziemlich zufälligen Eingabe zu initialisieren, z. B. analogRead()
auf einem nicht verbundenen Pin.
Umgekehrt kann es gelegentlich nützlich sein, Pseudozufallssequenzen zu verwenden, die sich genau wiederholen.
Dies kann durch Aufrufen von randomSeed()
mit einer festen Zahl erreicht werden, bevor die Zufallssequenz gestartet wird.
Der Parameter max sollte entsprechend dem Datentyp der Variablen ausgewählt werden, in der der Wert gespeichert ist.
In jedem Fall ist das absolute Maximum an die Länge des generierten Werts (32 Bit-2.147.483.647) gebunden.
Wenn du max auf einen höheren Wert setzt, wird beim Kompilieren kein Fehler generiert. Während der Ausführung des Sketches werden jedoch die Zahlen nicht generiert wie erwartet.