
Auf verschiedene Fragen soll der Arduino zufällig mit “ja”, “nein” oder “vielleicht” antworten. Die Frage wird auf einem LCD dargestellt, ein Servomotor zeigt die “Antwort” als Piktogramm an.
So sieht es aus:

Schließe das LCD an:


⇒LCD
Normalerweise wäre eine komplexe Verkabelung zum Betrieb eines LCDs nötig. Der ⇒I2C-Bus regelt über einen eigenen Mikroprozessor die Kommunikation der Datenleitungen untereinander. Es werden deshalb nur vier Anschlüsse benötigt.

Die Helligkeit kann mit einem Potentiometer auf der Rückseite des LCDs eingestellt werden.
Benötigte Bauteile:
- Servomotor
- LCD
- Leitungsdrähte
Baue die Schaltung auf:
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliotheken:
![]() | ![]() |
![]() |
oder: Sketch -> Bibliothek einbinden -> Bibliotheken verwalten
Binde die benötigten Bibliotheken ein und definiere die Variablen. Beachte die Kommentare.
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 | // eingebaute Bibliothek servo.h verwenden #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(); |
Der setup-Teil. Beachte die Kommentare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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); } |
Der loop-Teil: Beachte die Kommentare.
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 | 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); if (Zahl == 0) Motor.write(180); if (Zahl == 1) Motor.write(90); if (Zahl == 2) Motor.write(0); } } } |
Verwandte Anleitungen:
- Ampel
- Ampel mit dem Beschleunigungssensor ADXL335 schalten
- Ampel mit Bluetooth schalten
- Ampel mit einem Ethernet-Shield schalten
- Ampel mit Fußgängerampel
- Ampel mit Fußgängerampel und Taster
- Ampel mit UNO R4 WiFi schalten
- Ampel mit WiFi schalten
- Ampelanlage an einem Fußgängerüberweg
- Ampelschaltung mit einem LED-Stick
Letzte Aktualisierung:









