Instructions
56
12
ZUFALLSZAHLEN
DER LOTTOZAH
LENGENERATOR
Beim Schreiben von Mess-, Steuer-, Regel- oder Spielprogrammen ist es
oft von Nutzen, Zufallszahlen zu generieren, z.B. wenn in einem Haus zu
unterschiedlichsten Zeiten die Lichter an- und ausgehen sollen, um ei-
nen Anwesenheitssimulator zu programmieren. Für diesen Zwecke kann
man die Arduino™-random()-Funktion verwenden. So kann man auch
auf einfache Weise einen Lottozahlengenerator aufbauen, der 6 aus 49
für Sie zieht und Ihnen das lästige Nachdenken abnimmt, welche Zahlen
Sie nehmen sollen, wenn es gilt, den Lottoschein auszufüllen.
Für den Aufbau des Lottozahlengenerators benötigen Sie einen Taster und
eine Antenne. Der Taster wird in der Software entprellt. Taster und Schal-
ter neigen dazu, den Kontakt nicht sofort zu 100 % zu schließen, sondern
nach dem Drücken noch mehrfach auszulösen. Das ist vergleichbar da-
mit, wenn man einen Ball auf den Boden wirft. Er wird zuerst ein paar Mal
hochspringen, bis er endgültig auf dem Boden liegen bleibt. Bei einen Tas-
ter geht das zwar deutlich schneller, aber dafür ist der Arduino™-Mikro-
controller so schnell, dass er auch diese im Millisekundenbereich liegen-
den »Hüpfer« noch erfasst. Um das zu vermeiden, wird der Taster entprellt,
indem er zweimal hintereinander mit einer Pause von 50ms abgefragt
wird, was in der Praxis für eine Entprellroutine reicht. Erst wenn bei der
zweiten Auswertung noch immer ein LOW am Eingang D7 erkannt wird,
wird die Anweisung zwischen den Klammern ausgeführt.
Zu Beginn des Programms schalten wir den Port D7 auf INPUT und akti-
vieren den internen Pull-up-Widerstand, indem wir mit
digitalWrite()
eine 1 für HIGH auf den Eingang schreiben. Nun liegt im Ruhezustand
eine Spannung von ca. 5V am Eingang an. Jetzt können Sie den Eingang
mit dem Taster gegen GND (Masse) ziehen. Dieser Pull-up-Widerstand
ist im Mikrocontroller integriert und besitzt einen Wert von ca. 20 bis 50
kΩ. Von der Funktion her ist es das Gleiche, als wenn Sie einen externen
Widerstand vom Eingang D7 auf +5V legen würden. Im Ruhezustand
wird somit im Programm immer ein HIGH am Eingang D7 erkannt und
bei gedrücktem Taster ein LOW. Deshalb ist im Programm die Tasterab-
frage auch mit einen Ausrufezeichen versehen. Das bezeichnet man in
10174-5 Conrad Arduino Lernpaket_09.indd 5610174-5 Conrad Arduino Lernpaket_09.indd 56 14.07.2015 08:10:2614.07.2015 08:10:26