kk logo

Die einfachste Möglichkeit, Zufallszahlen zu erzeugen, ist die Funktion random(). Sie benötigt im Prinzip zwei Zahlen: die kleinste Zahl und die größe die vorkommen darf. Das "Problem" von random ist, dass es keine wirklichen Zufallszahlen erzeugt, sondern eine Art Zahlenkette hat. Sobald man den Arduino also neu startet kommt die gleiche Zahlenfolge wie zuvor auch. 

Die Funktion randomSeed() dagegen gibt dem Arduino Anweisung, zwar diese Zahlenfolge zu verwenden aber noch einen anderen Wert einzubauen. Ardublock verwendet für seinen Block "Zufallszahl" genau diese Funktion. 

1 arduino zufallszahl tutorial random seed ardublock

Wenn man sich das Programm nach dem hochlanden einmal anschaut, sieht man dass die Zahlen aus "random" mit den Analogen Pins A0, A1 und A2 multipliziert werden. Da an diesen Pins, wenn sie nicht gegen "high" oder "low" geschaltet sind, immer eine andere Spannung anliegt, haben wir nun eine wirklich zufällige Zahl. 

2 arduino zufallszahl tutorial random seed ardublock

 Wer einmal sehen möchte was sein, wie sich so ein analoger Eingang verhält wenn er ohne dass etwas angeschlossen ist, der läd dieses Beispiel auf den Arduino und startet dann den Serial Monitor.

3 arduino zufallszahl tutorial random serial monitor

 

Im Serial Monitor ist dann schön zu sehen, wie sich die Zahlen verändern, ohne dass am Arduino etwas gemacht wird. Diese Veränderung von drei analogen Pins, ergibt dann unsere Zufallszahl. 

4 arduino zufallszahl tutorial random seed ardublock

Zufallszahl mit ARDUBLOCK (nicht letsgoink)

Wer die original Version von Ardublock verwendet, der hat einen etwas anderen Block, mit gleicher Funktion. Der Block erzeugt ebenfalls eine Zufallszahl nur das hier die MIN und MAX Zahl eingestellt werden kann und nicht nur die MAX Zahl. In dem Hochgeladen CODE fehlt mir zwar das rechnen mit den analogen PINs doch sind die ersten 10 Zahlen nach 10 mal starten immer anders, es ist also auch keine immer gleiche Zufallszahl.

 zufallsgenerator mit arduino tutorial

 

 Der Block Zufallszahl 

 Um eine Zufallszahl zu erhalten, braucht es eine analoge variable, in die der Wert gespeichert werden kann. Bei jedem "Durchgang" des Arduino wird nun eine andere Zufallszahl errechnet.

 

5 arduino zufallszahl tutorial random seed ardublock

 

 Es können aber keine beliebigen Zufallszahlen erzeugt werden. Es geht immer los bei der 0 und endet bei der Zahl die wir bei MAX eintragen. Wenn ich als bei Max 4 eintragen , dann erhalte ich zahlen von 0 bis drei. Ich erhalte also 4 Zahlen die zufällig erscheinen 0,1,2,3 aber vorsicht, keine 4. Wenn ich MAX 6 eingebe, dann erhalten ich die Zahlen 0,1,2,3,4,5 aber keine 6.

In diesem Beispiel erzeugt das Programm alle 500ms eine Zufallszahl von 0 bis 3 die auf dem Serial Monitor erscheint.

 6 zufallszahlen mit dem arduino random seed

 In dem Serial Monitor sieht man nun die Zufallszahlen die das Programm erzeugt hat. Zahlen von 0 bis 3. 

 7 zufallszahlen mit dem arduino random seed ardublock tutorial

Möchte man nun aber ein Programm mit einem Würfel haben, kann man die Zufallsfunktion so nicht verwenden. Wenn als MAX 6 eingestellt wird, komme ich nur bis zur Zahl 5. Wenn ich Max 7 einstelle, ist ab und zu immer noch eine 0 mit dabei, die ich auf dem Würfel nicht habe.

Wer Zufallszahlen von EINS an haben möchte kann alternativ einfach den mathematischen Block "+" verwenden und die Zufallszahl + 1 setzen. Damit wird die Zufallszahl immer um eine Stelle erhört und es beginnt dann nicht mit einer NULL sonder mit einer EINS. Weil 0+1=1, 1+1=2 usw. Damit würde sich nur die Zahl in den abgefragten Blöcken ändern, mir ist das nicht wichtig, deshalb spare ich mir das +1. Ich wollte es hier aber nicht unerwähnt lassen.

zufallsgenerator mit ardublock tutorial

Würfel mit Zufallszahl, random seed und Ardublock

 

 In diesem Programm, wird die erzeugte Zufallszahl mit dem "falls" Block ausgewertet und dann die passende Würfelzahl auf dem Serial Monitor ausgegeben. So erhalte ich aus den Zahlen von 0-5 die passenden Zahlen von 1-6 für mein Würfel Programm.

8 zufallszahlen mit dem arduino random seed ardublock tutorial

 

 Das Ergebnis lässt sich in Serial Monitor dann sehr gut anschauen. 

 9 arduino zufallszahl tutorial random seed ardublock

Um einen richtigen Würfel zu bauen bracht es natürlich noch einen Taster und die Passenden 6 LEDs die wie ein Würfel angeordnet sind. Die digitalen Ausgänge mit den Widerständen müssen natürlich mit den passenden LEDs verbunden werden.  

10 ardublock wurfel serlber bauen graifsche programmierung

 

Das Programm in Ardublock, sieht dann so aus. Damit der Würfel nach dem Start keine Zahl anzeigt, setzte ich die Variable auf 10, so wird keine Zahl angezeigt. Wird der Taster gedrückt, setze ich die Variable auf 0 zurück, dann wird eine Zufällig Zahl in der Variablen gespeichert. Danach werden alle LEDs ausgeschaltet, sonst das auch nur die LEDs die an sein sollen. Dann kommt auch schon das abfragen der Zufallszahl und das einschalten der passenden LEDs.

 

11 arduino 6 augen wuerfel selber bauen tutorial

12 arduino 6 augen wuerfel selber bauen zufallszahl

13 arduino 6 augen wuerfel selber bauen

by grace

By grace alone somehow I standWhere even angels fear to treadInvited by redeeming loveBefore the throne of God aboveHe pulls me close with nail-scarred handsInto His everlasting arms

Ronnie

schwäbischer tüftler und bastler, kraftsportler, 41 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee