Arduino Display 2 zeilen

Gast #2857831
Lesenswert?

Hallo,

Ich möchte an meinem Arduino eine Eingabe über Serial Monitor auf das 
Display geben. Was auch Funktioniert allerdings nur in der ersten Zeile
wie bringe ich dem bei das er nach 16 Zeilen und die 2. reihe rutschen 
soll

#include <LiquidCrystal.h>


  LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup(){
     // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);


   // initialize the serial communications:
   Serial.begin(9600);
 }

void loop()
 {
   // when characters arrive over the serial port...
   if (Serial.available()) {
     // wait a bit for the entire message to arrive
     delay(100);
     // clear the screen
     lcd.clear();
     // read all the available characters
     while (Serial.available() > 0) {

        // display each character to the LCD
       lcd.write(Serial.read());
     }
   }
 }
Gast #2857852
Lesenswert?

marc schrieb:
> Naja die SUFU kann ich auch benutzen komm aber damit nicht weiter.
> hab schon einiges versucht.

Dann ist wohl etwas schief gelaufen.

Auf der verlinkten Seite heißt es unter anderem:

> lcd.setCursor(0, 0); // top left
> lcd.setCursor(15, 0); // top right
> lcd.setCursor(0, 1); // bottom left
> lcd.setCursor(15, 1); // bottom right

Das bezieht sich direkt auf ein 2x16 Display so wie du eines hast. 
Insofern sollte doch alles klar sein, oder wo gibt es noch Probleme?
#2857868
Lesenswert?

Cube schrieb:

> Das bezieht sich direkt auf ein 2x16 Display so wie du eines hast.
> Insofern sollte doch alles klar sein, oder wo gibt es noch Probleme?


Ich denke das Problem besteht im nicht akzeptieren wollen, dass man halt 
die Anzahl der ausgegebenen Zeichen mitzählen muss, damit man im 
richtigen Augenblick mittels lcd.setCursor() in die 2.te Zeile wechseln 
kann.
Gast #2857870
Lesenswert?

Hallo Cube,

Mit der secCursor funktion gebe ich ihm die Zeile in die er es schreiben 
soll. aber anders als bei Serial.print schreibt er nicht automatisch in 
der nächsten zeile weiter ! Und wenn ich die print Funktion nehme dann 
bringt er mir im Display nur Hex werte.
#2857891
Lesenswert?

marc schrieb:
> Ok aber wie bringe ich dem bei das er nach 16 zeichen eine weitere Zeile
> nimmt ich muss doch die zeichen irgentwie mitzählen. um ihm dann zu
> sagen
> lcd.setCursor(0, 1); // bottom left

Schon mal was von Variablen gehört?
Die sind genau dazu gedacht, dass man sich dort drinnen Werte 
abspeichern kann, mit ihnen rechnen kann, sie vergleichen kann, etc.
1
//#############################
2

3
int AnzahlZeichen = 0;
4

5
//#############################
6

7

8
void loop()
9
 {
10
   // when characters arrive over the serial port...
11
   if (Serial.available()) {
12
     // wait a bit for the entire message to arrive
13
     delay(100);
14
     // clear the screen
15
     lcd.clear();
16
     // read all the available characters
17
     while (Serial.available() > 0) {
18

19

20
//#############################
21

22
       AnzahlZeichen = AnzahlZeichen + 1;
23
       if( AnzahlZeichen == 16 )
24
         ..... wechsle in die 2.te Zeile
25

26
//#############################
27

28
        // display each character to the LCD
29
       lcd.write(Serial.read());
30
     }
31
   }
32
 }

es hilft nichts:
Auch wenn einem die Arduino Libraries viel abnehmen, ohne Grundkentnisse 
geht es nun mal nicht. Du brauchst dringend Literatur. Mit dem 
Übernehmen von Code-Schnipseln aus irgendwelchen windigen Tutorien ist 
es nun mal nicht getan.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren