#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)
Serial.begin(9600);
// Motor an Pin 9
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: