Hola compañeros. Me surge una duda que no imagino como puedo resolver debido a los escasos conocimientos del tema, me enfrento por primera vez a una LCD 16x2 i2c en arduino, y pretendo recoger una cadena de caracteres por puerto serie e imprimirla (Para aplicacion en futuros proyectos). Pues estoy probando a introducir "abcdefghijklmnñopqrstuvwxyz" pero la pantalla solo me imprime en la primera linea hasta la letra "p". me gustaria saber como podria conseguir que siguiese en la linea siguiente manera automatica continuando con la cadena introducida.
Gracias de antemano (He buscado informacion de impresion de cadenas introducidas por puerto serie, y lo unico que encuentro son cadenas configuradas previamente en en codigo)
La manera automatica la tienes que programar....Si le hechas un ojo a la referencia de String veras que tiene muchos metodos interesantes de tratar cadenas,sabiendo que tu pantalla tiene dos lineas de 16 caracteres ,una manera de hacerlo podria ser imprimir dos trozos ,el primero de 16 caracteres,posicionar el cursor en el principio de la segunda linea e imprimir el segundo trozo.mira que metodos tiene la libreria lcd que usas para posicionar,suele ser algo como lcd.setCursor(columna,fila).este ejemplo es con el serial monitor ,trasladalo al lcd.
void setup() {
Serial.begin(9600);
String cadena = "abcdefghijklmnopqrstuvwxyz";
Serial.println(cadena.substring(0,15));
// aqui iria lcd.setCursor(0,1);
Serial.println(cadena.substring(16));
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
jose:
La manera automatica la tienes que programar....Si le hechas un ojo a la referencia de String veras que tiene muchos metodos interesantes de tratar cadenas,sabiendo que tu pantalla tiene dos lineas de 16 caracteres ,una manera de hacerlo podria ser imprimir dos trozos ,el primero de 16 caracteres,posicionar el cursor en el principio de la segunda linea e imprimir el segundo trozo.mira que metodos tiene la libreria lcd que usas para posicionar,suele ser algo como lcd.setCursor(columna,fila).este ejemplo es con el serial monitor ,trasladalo al lcd.
void setup() {
Serial.begin(9600);
String cadena = "abcdefghijklmnopqrstuvwxyz";
Serial.println(cadena.substring(0,15));
// aqui iria lcd.setCursor(0,1);
Serial.println(cadena.substring(16));
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Muchisimas gracias, no habia pensado en que podia tener que ver con el string en vez de con el numero de caracteres que recogia... no se si me explico, yo intentaba que si serialavailable() > 15 seteara el cursor en otra posicion... y claro esta que no funcionaba.