Problema con LCD

Ciao a tutti,
ho ordinato questo LCD:

ho provato ad eseguire questo codice:

#include <LiquidCrystal.h>
const char* TEXT="ciao ciao ciao ciao ciao ciao";
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
}

void loop() {
lcd.begin(2, 16);
lcd.print(TEXT);// set the cursor to column 0, line 1
delay (1000);
}

il progetto e' questo:

L' LCD me lo stampa, ma non va' a capo!!!
Sapete come risolvere?
Grazie a tutti

Non è un problema. LCD è tonto, non và a capo da solo. :grin:
Devi essere tu che tagli le righe in base alla lunghezza del tuo LCD e gli dici di scriverle sulla seconda riga. :wink:

ah... che figura xD
quale e' la funzione per andare alla seconda riga? :slight_smile:

Devi settare il cursore --> LiquidCrystal - Arduino Reference

PaoloP:
Non è un problema. LCD è tonto, non và a capo da solo. :grin:

Diciamo che in realtà dipende dalla geometria del display, quando invii una serie di caratteri questi vengono posti, in ordine di arrivo, nella ram interna del controller, 80 byte, a partire dalla posizione in cui si trova il relativo puntatore.
La "fregatura" sta nel fatto che le righe del display non seguono 1:1 le celle di memoria, sono organizzate per banchi di memoria, tipicamente di 16-20 byte, tra loro alternati, una disposizione classica è che la riga 1 va da 0 a 15 (o 19) mentre la riga 2 va da 40 a 56 (o 59), ovvero la prima riga è posta nella prima metà della ram mentre la seconda è posta nella metà successiva.
La cosa è facilmente verificabile su un display 20x4 dove scrivendo in continuazione, senza mai fare un clear o modificare il valore del puntatore alla ram, prima si riempie la prima riga, poi la terza, quindi la seconda e infine la quarta, questa è una delle possibili ripartizioni della ram, la più diffusa.

Grazie a tutti!!!
mi siete stati utilissimi grazie!!! :DD