Lottozahlen Generator
Im Folgen wird ein Programm vorgestellt, welches auf dem LCD Display zufällige Lottozahlen generiert:
Schaltplan:
Code:
#include LiquidCrystal.h //Die Library bestimmen
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int buttonPin = 8;
int theNumbers[] = {0, 0, 0, 0, 0, 0};
int timeToNumber = 600;
int numbersFound = 0;
long myTimer = 0;
void setup() { //Das Setup bestimmen
pinMode(buttonPin, INPUT_PULLUP);
lcd.begin(16, 2);
randomSeed(analogRead(0));
myTimer = millis();
Serial.begin(115200);
}
void getNumbers() { //Durch diese Methode lassen sich die zufälligen Zahlen generieren
boolean uniqueNumbers = false;
while (uniqueNumbers == false) {
uniqueNumbers = true;
for (int i = numbersFound; i < 6; i++) { // Zufallszahlen generieren
theNumbers[i] = int(random(49)) + 1;
}
for (int i = 0; i < 5; i++) {
for (int j = i + 1; j < 6; j++) {
if (theNumbers[i] == theNumbers[j]) uniqueNumbers = false; // hier wird die Eindeutigkeit überprüft, sodass keine Zahlen doppelt erscheinen
}
}
}
}
void showNumbers(){ // hier werden die Zahlen auf dem LCD Display angezeigt
for (int i = 0; i < 3; i++) {
lcd.setCursor(4 * i, 0);
if (theNumbers[i] < 10) lcd.print(" ");
lcd.print(theNumbers[i]);
lcd.setCursor(4 * i, 1);
if (theNumbers[i + 3] < 10) lcd.print(" ");
lcd.print(theNumbers[i + 3]);
}
}
void loop() {
if (digitalRead(buttonPin) == LOW) numbersFound = 0;
if (myTimer + timeToNumber < millis()) {
numbersFound++;
myTimer = millis();
}
getNumbers();
showNumbers();
delay(50);
}
Quelle: https://starthardware.org/arduino-lotto-zahlen-generator/
Erstellt: Mathias Mohs (23.04.2020)
Letzte Änderung: Mathias Mohs (23.04.2020)