|
14-Kanal-Zufallslicht (und: rand-Funktion)
Du wirst ein 14-Kanal-Zufallslicht bauen und die Erzeugung einer
Zufallszahl mittels der rand-Funktion kennenlernen.
Hier nochmal die vom letzten Versuch bekannte Schaltung:

Die Bezeichnungen PC0 bis PB5 sind die Portbezeichnungen des
Atmega328, wie sie beim Fünfkanallauflicht
erläutert wurden.
Das Programm ist sehr kurz:
/*
14-Kanal-Zufallslicht
LEDs an den Ausgängen: Digital_0 bis Digital_13
LED Strombegrenzung: R1 = 220 Ohm
www.arduinospielwiese.de
*/
void setup()
{
DDRB = 0b00111111;
DDRD = 0b11111111;
}
void loop() {
PORTB = rand();
PORTD = rand();
delay(150);
}
Die Funktion rand() erzeugt eine zufällige Zahl, die wir direkt in
einen Port schieben.
Welchen Sinn hat das?
Stell Dir einmal vor, Du baust einen kleinen Roboter, der
Hindernisse erkennt.
Wenn er herumfährt und gegen eine Wand trifft, fährt er immer 10
cm zurück, dreht sich beim ersten mal nach links um genau 90 Grad und fährt wieder
geradeaus.
Trifft er ein zweites Mal gegen eine Wand, fährt er wieder 10 cm
zurück, dreht sich um genau 90 Grad nach rechts und fährt wieder geradeaus.
Du ahnst schon was passiert, wenn er in eine 90-Grad-Ecke kommt?
Genau - er kommt da nie wieder weg. Besonders dann, wenn er sehr
genau arbeitet!
Eine andere Zahl als 90 Grad zu nehmen, wäre auch keine viel
bessere Lösung. Es gibt die verschiedensten Ecken in Deiner
Wohnung ...
Eine gute Lösung wäre eine zufällige
Gradzahl, nicht wahr?
|