Hallo Leute!
Habe heute mal wieder ne Frage, vielleicht kann jemand helfen?
Habe ein 16x1 Display!
Leider wird beim nachfolgenden *.ino nur die ersten 8 Zeichen angesteuert.
/*
LCD Anschluss:
LCD RS an Arduino Pin 12
LCD Enable an Arduino Pin 11
LCD D4 an Arduino Pin 5
LCD D5 an Arduino Pin 4
LCD D6 an Arduino Pin 3
LCD D7 an Arduino Pin 2
LCD R/W an Arduino Ground
10K Widerstand von Arduino:
Quelle:
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
modified 14.12 2016
INO Sketch modified
by Skino
This example code is in the public domain.
*/
// include the library code: #include <LiquidCrystal.h>
Das 16x1 ist ein 8x2, bei dem die beiden Zeilen hintereinander sind.
Du musst also die Stellen 8...15 mit einem setcursor(0,1) auf 2.Zeile Position 0 einleiten.
Hallo!
Ja den Link kenn ich ja ;-))
Das Problem ist, das dies ja kein Statische Text ist sondern nen String!
Kann man nen String teilen?
So nach dem Motto:
Ermittle Länge des Strings=> dann teile die Länge => schreibe 1. Hälfte vom String an die Position
(8 - Länge erste hälfte Sting) => dann Cursor (0,2) und => 2. Hälfte vom String.
Ich weiss sehr einfach gedacht, aber vielleicht ne "Denkidee".
Also irgendwie scheine ich mich derzeit etwas komisch auszudrücken?
Was ich meinste ist, das ich den Link schon kenne (hab ich ja selbst angestoßen).
Aber das bezieht sich ja auf einen statischen Text!
Jetzt geht es aber um einen String!
Habe oben mal ein kleines Test-Programm hinein editiert.
Aber das bezieht sich ja auf einen statischen Text!
Jetzt geht es aber um einen String!
Statischer Text ist ein String! Das geht aber genauso mit variablen char Arrays. Wenn du die Arduino String Klasse meinst: verzichte am besten darauf und lerne mit C Strings umzugehen. Damit kann man wesentlich mehr machen.
Ansonsten wenn es unbedingt die String Klasse sein muss:
1.) Übergebe Strings an Funktionen immer als Referenz und nicht als Wert: void func(String& str)
2.) oder verwende die c_str() Methode um an an das interne char Array zu kommen
Aber am besten ist es man verwendet C Strings und schreibst seine Funktionen so dass sie einen const char* als Parameter haben. Dann kann man sowohl String Literale als auch char Arrays übergeben. Und zur Not auch String Objekte wenn man c_str() verwendet.