Kompliment-Maschine mit Arduino

Eigentlich kann man doch gar nicht oft genug hören, wie toll man ist. Dafür bauen wir uns nun eine Kompliment-Maschine.

LCD-Displays können Texte anzeigen. Dafür muss man erst die Pins anlöten, dann müssen noch ein paar Pins angeschlossen werden. 

LCD steht übrigens für liquid crystal display.

Schaltplan

Der RS Pin kommt an Digital 12 des Arduino-Boards, der Enable Pin an Digital 11, dann die Daten Pins 4 bis 7 an Digital 5 bis 2.

Arduino LCD Schaltung Circuit Breadboard

Ein Vorwiderstand für die LED und Stromversorgung kommt an den Hintergrund-Beleuchtungspin. Mit einem Poti können wir noch den Kontrast kalibrieren. 

Code

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

String zeileEins[]={"Boa, siehst Du  ", "Deine Hater    ", "Du hast sooo    ", "Heute ist Dein ", "Lecker wie Pizza", "Ja man, drueck"};
String zeileZwei[]={"heute geil aus! ", "lieben Dich!!  ", "schoene Augen.  ", "GLUECKSTAG!!!  ", "Burger-Sushi!   ", "meinen Knopf!"};

int anzahl = 6;

void setup() {
  randomSeed(analogRead(0));
  
  lcd.begin(16, 2);

  int i = random(anzahl);

  lcd.setCursor(0, 0);
  lcd.print(zeileEins[i]);

  lcd.setCursor(0, 1);
  lcd.print(zeileZwei[i]);
 
}

void loop() {
      
}

Code-Erklärungen

Im Code importieren wir zuerst die LCD-Library: #include <LiquidCrystal.h>

Jetzt legen wir das LCD-Objekt an. In die Klammern kommen die Pins, die wir benutzt haben: LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Das LCD soll Texte anzeigen. Dazu nehmen wir die Variable String. String ist ein Variablentyp, der Zeichenketten speichern kann. Ein Text reicht mir nicht, also machen wir ein Array draus. Ein Array aus Strings.

Das LCD hat zwei Zeilen, also müssen wir die Botschaften in zeileEins und zeileZwei teilen. Da sich die Stellen des LCDs nicht automatisch löschen, füge ich so viele Leerzeichen ein, wie die LCD-Zeile lang ist, nämlich 16 Zeichen.

Eine Variable nehme ich noch um zu speichern, wie viele Botschaften es gibt.

Das ganze Programm läuft im Setup. Es wird also bei jedem Reset genau ein Mal ausgeführt werden.

Zufälle im Computer sind leider nicht sehr zufällig. Deshalb starten wir den Zufalls-Nummern-Generator mit randomSeed(analogRead(0)); Mehr Infos dazu hier auf Arduino.cc.

Das LCD wird mit Zeichenlänge und Zeilenanzahl angelegt: lcd.begin(16, 2);

Jetzt erzeugen wir eine zufällige Zahl zwischen 0 und der Anzahl der Botschaften: int i = random(anzahl);

Zeile 1 wird ausgegeben, zweile 2 wird ausgegeben:

  lcd.setCursor(0, 0);
  lcd.print(zeileEins[i]);

  lcd.setCursor(0, 1);
  lcd.print(zeileZwei[i]);

Lade das Programm aufs Arduino-Board.

Den Reset-Knopf des Arduino-Boards kannst du nun benutzen, um eine neue Botschaft zufällig ausgeben zu lassen.

Titelbild: M. Muecke (www.kankuna.de), BY-CC-SA

Hast du weitere Fragen? Probier doch mal unser brandneues Forum zu Arduino aus!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.