1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #include “Servo.h” #include “LiquidCrystal_I2C.h” #include “Bounce2.h” LiquidCrystal_I2C lcd(0x27, 20, 4); // Bezeichnung des Motors Servo Motor; int TASTER = 7; /* das LCD ist auf 20 Zeichen begrenzt um einen unerwünschten Zeilenumbruch zu verhindern, müssen für die Fragen zwei Arrays erstellt werden */ // 1. Zeile der Frage String FragenErstezeile[10] = { // mit Leerzeichen bis 20 auffüllen { “Wird der BVB ” }, { “Scheint morgen ” }, { “Wird Deutschland ” }, { “Habe ich 6 Richtige ” }, { “Gibt es den ” }, { “Gibt es UFOs und ” }, { “Sollte ich mal ” }, { “Bekomme ich bald ” }, { “K\357nnen Schweine ” }, { “Wird es morgen ” }, }; // 2. Zeile der Frage String FragenZweiteZeile[10] = { { “Deutscher Meister? ” }, { “die Sonne? ” }, { “Fu\342ball-Weltmeister?” }, { “im Lotto? ” }, { “Weihnachtsmann? ” }, { “Au\342erirdische? ” }, { “Lotto spielen? ” }, { “mehr Gehalt? ” }, { “fliegen? ” }, { “regnen? ” }, }; // Bibliothek Bounce2 // “Prellverhinderer” für den Taster starten Bounce Start = Bounce(); void setup() { // Motor an Pin 9 angeschlossen (attach) Motor.attach(9); Serial.begin(9600); // Motor in die Mittelposition fahren Motor.write(90); // Zufallsgenerator starten randomSeed(analogRead(A0)); // LCD starten lcd.init(); lcd.backlight(); pinMode(TASTER, INPUT_PULLUP); // Instanz des Objekts Bounce für den Taster zuordnen // Zeitintervall einstellen Start.attach(TASTER); Start.interval(20); } void loop() { // Taster abfragen if (Start.update()) { if (Start.read() == LOW) { // Zufallszahl zwischen 0 und der Länge des Arrays int Zahl = random(0, sizeof(FragenErstezeile) / sizeof(FragenErstezeile[0])); Serial.println(Zahl); lcd.setCursor(0, 0); lcd.print(FragenErstezeile[Zahl]); lcd.setCursor(0, 1); lcd.print(FragenZweiteZeile[Zahl]); delay(1000); // Bewegung des Motors zur Simulation der “Entscheidung” Motor.write(180); delay(500); Motor.write(0); delay(500); // 0 = ja/1 = vielleicht/2 = nein Zahl = random(0, 3); Serial.println(Zahl); if (Zahl == 0) Motor.write(180); if (Zahl == 1) Motor.write(90); if (Zahl == 2) Motor.write(0); } } } |
Letzte Aktualisierung: