Pages: [1]   Go Down
Author Topic: Multilinea su display 20x4 HD44780 compatibile  (Read 467 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 46
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salute a tutti!

Ho un problema con il mio progetto: in pratica, quando vado a capo (o la stringa è troppo lunga) su un display LCD 20 colonne x 4 righe mi salta una riga.

Invece di avere riga -> riga -> riga -> riga ottengo riga -> riga vuota -> riga -> riga vuota.
Il codice:

Code:
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
 
  lcd.begin(20, 4);
   lcd.setCursor(0,1);
 
  lcd.print("Questa è una stringa molto lunga solo per dimostrare che dovrebbe funzionare correttamente! ");

}

void loop() {

}


In pratica appare come l'ultimo esempio qui:

http://learn.adafruit.com/character-lcds/using-a-character-lcd


E' un problema della libreria LiquidCristal?

Grazie e saluti!
« Last Edit: October 10, 2012, 11:57:22 am by altagest » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 411
Posts: 11986
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No, è un problema della ram dell'LCD, è gestita così, devi quindi fare in modo da indirizzare tu il testo, non superando i 20 caratteri, per evitare il cambio riga automatico, puntando il cursore alla riga esatta.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

0
Offline Offline
Newbie
*
Karma: 0
Posts: 46
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi, in pratica, dovrei creare delle procedure che puntano dove serve da richiamare quando mi servono con setCursor(x,y)?
Sarei curioso di capire perché hanno gestito la cosa così. Infatti, se uso "println" o "\n" ottengo sì il caporiga, ma anche dei caratteri strani (suppongo l'escape di EOL). Ma tant'è...

La rottura di scatole sta nel fatto che se mi serve nel loop diventa un po' farraginoso da gestire... non ci sono librerie che "sanno" di questa peculiarità?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 411
Posts: 11986
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Che sappia io no, puoi costruirti tu un minimo di protocollo, con dei caratteri speciali che hanno il significato del set cursor (x,y). Io ne ho provate diverse ma non c'è nulla che permetta di gestire in automatico la suddivisione del testo su più righe.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Pages: [1]   Go Up
Jump to: