Pages: [1]   Go Down
Author Topic: Problema con LCD  (Read 436 times)
0 Members and 1 Guest are viewing this topic.
Albino (BG)
Offline Offline
Newbie
*
Karma: 1
Posts: 13
Viva Internet!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
ho ordinato questo LCD:
http://urlin.it/38dac

ho provato ad eseguire questo codice:
Quote
#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

Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7126
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Albino (BG)
Offline Offline
Newbie
*
Karma: 1
Posts: 13
Viva Internet!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ah... che figura xD
quale e' la funzione per andare alla seconda riga? smiley
« Last Edit: February 19, 2013, 11:03:57 am by _Gabriele_ » Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7126
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Devi settare il cursore --> http://arduino.cc/en/Reference/LiquidCrystalSetCursor
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 129
Posts: 9506
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non è un problema. LCD è tonto, non và a capo da solo.  smiley-mr-green

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.
Logged

Albino (BG)
Offline Offline
Newbie
*
Karma: 1
Posts: 13
Viva Internet!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: