Arduino – Zufallszahlen generieren

In diesem Artikel zeige ich Dir, wie Du verschiedene Zufallszahlen generieren kannst.

Zufallszahlen können mit dem Arduino oder ESP8266 relativ einfach generiert werden. Die Arduino-Umgebung stellt hierfür verschiedene Funktionen zur Verfügung. Im Beispiel zeige ich Dir drei verschiedenen Wege eine Zufallszahl zu generieren.

Im ersten Versuch wird eine Zufallszahl zwischen 0 und 50 generiert. Der random() Funktion wird hierfür nur der maximale Wert übergeben.

In der zweiten Wertermittlung gebe ich der random() Funktion einen Wertebereich von 100 – 200 mit. Somit befindet sich der Wert innerhalb dieses Bereichs.

Im dritten Versuch wird der Zufallsgenerator vor der eigentlichen Wertermittlung mit einem pseudo-Wert des nicht verwendeten Pins A0 initialisiert. Somit startet der Zufallsgenerator bei jeder Wertermittlung intern an einer anderen Position. Mehr Informationen zu randomSeed() Funktion findest Du auch hier:

https://www.arduino.cc/reference/de/language/functions/random-numbers/randomseed/

int zufallszahl;

  void setup() {
    Serial.begin(9600);
  }

  void loop() {
    zufallszahl = random(20);
    Serial.print ("Nächste Zufallszahl zwischen 0 und 20=");
    Serial.println (zufallszahl); 
        
    zufallszahl = random(100,200);
    Serial.print ("Nächste Zufallszahl zwischen 100 und 200=");
    Serial.println (zufallszahl);   

    randomSeed(analogRead(A0));
    zufallszahl = random(75);
    Serial.print ("Nächste Zufallszahl zwischen 0 und 75=");
    Serial.println (zufallszahl); 
        
    delay(2000);
  }

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.