Hallo Arduino Community,
ich programmiere gerade ein LCD-Display (Quapass 1602A, 2x16). Ich lese Text aus dem Seriellen Monitor ein und schreibe ihn auf das LCD. Dabei bin ich jetzt soweit, dass ich mit einem Joystick die Cursorposition steuern und an dieser Position weiterschreiben kann.
void joystick(){
if(analogRead(x_pin)>1000) { spalte+=1; //Cursor um eine Position nach rechts, wenn Joystick nach rechts gedrückt ist
if(spalte>=15) spalte=15; //allerdings maximal bis Position 15 bzw 16
}
else if(analogRead(x_pin)<200) { spalte-=1; //Cursor um eine Position nach links, wenn Joystick nach links gedrückt ist
if(spalte<=0) spalte=0; ////allerdings maximal bis Position 0 bzw 1
}
if(analogRead(y_pin)>1000) { zeile+=1; //Cursor um eine Zeile nach unten, wenn Joystick nach unten gedrückt ist
if(zeile>=1) zeile=1; //allerdings maximal bis Zeile 1 bzw 2
}
else if(analogRead(y_pin)<200) { zeile-=1; //Cursor um eine Position nach oben, wenn Joystick nach oben gedrückt ist
if(zeile<=0) zeile=0; //allerdings maximal bis Zeile 0 bzw 1
}
lcd.setCursor(spalte,zeile); //Cursor an entsprechende Postition setzen
delay(250);
if(Serial.available()){ //Wenn etwas im Serial Port angekommen ist ...
while(Serial.available()>0){ //Solange auslesen, bis der Serial Buffer leer ist
buchstabe=Serial.read();
if(buchstabe=='|'){eingabe=buchstabe;break;} //rausspringen, wenn raus-Zeichen angekommen ist
lcd.print(buchstabe); //ansonsten Zeichen auf Display schreiben
if(spalte<15) spalte+=1; //Spaltenposition mitregistrieren
}
}
}
Mein Problem ist, dass das LCD nach jeder Eingabe auf dem Serial Monitor automatisch ein Leerzeichen an den Text anfügt. Liegt das daran, dass beim Absenden der Serial Monitor einen Zeilensprung oder Ähnliches mitschickt ?
Jedenfalls will ich mit dem Joystick auf jede Cursorposition navigieren und jedes Zeichen einzeln überschreiben können. Man kennt das Problem ja auch von schlechten Texteingabefeldern, wo, wenn man nachträglich ein Wort bzw. Satz hinzufügen will, immer gleich das nächste Zeichen mit überschieben wird, sodass man den ganzen Text nochmal neu schreiben muss.
Wäre cool, wenn mir jemand helfen kann.
Viele Grüße