Go Down

Topic: LiquidCrystal: far lampeggiare il trattino (nella pratica) (Read 952 times) previous topic - next topic

ORSO2001

ciao...l'underscore si posizione nello stesso punto del cursor...cioè dove dovresti scrivere il carattere...per esempio se parti dalla posizione 0 di una riga (nulla scritto) l'US sarà alla posizione 0....se scrivi un carattere, quindi posizione 0 piena e cursore automaticamente spostato su posizione 1, che è libera, l'US sarà sulla posizione 1.

se guardi il mio esempio, dove scrivo a random caratteri e do conferme random, ma il cursore rimane sempre nella posizione dove sto scrivendo, non faccio altro che una serie di setCursor() tenendo memorizzate le conferme sul carattere inserito.

Datman

Capisco. :)
Grazie
Hi,I'm Gianluca from Roma.I play&work with electronics since I was16(1984).
After 25yrs of maintenance on cameras&video mixers,since 2013myJob is HDTVstudios design.
Since Jan2015 IPlayWith Arduino:bit.ly/2F3LPWP
Thanks 4 a Karma if U like my answer

docdoc

Non riesco a capire se il funzionamento è statico o dinamico, se il trattino viene messo in una posizione fissa o si posiziona continuamente dopo l'ultimo carattere scritto... E' così?
Eh si, come dicevo "...dopo il lcd.cursor() fai una serie di lcd.print() ti si sposta alla fine di ciò che scrivi".
Il trattino sta SEMPRE dove fai setCursor e si sposta ad ogni print().
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Datman

Il blink(), invece, rimane sul carattere selezionato?

Dal reference:
blink()
Description
Display the blinking LCD cursor. If used in combination with the cursor() function, the result will depend on the particular display.

Uhmm... ? ? ?
Hi,I'm Gianluca from Roma.I play&work with electronics since I was16(1984).
After 25yrs of maintenance on cameras&video mixers,since 2013myJob is HDTVstudios design.
Since Jan2015 IPlayWith Arduino:bit.ly/2F3LPWP
Thanks 4 a Karma if U like my answer

docdoc

Il blink(), invece, rimane sul carattere selezionato?
Non ho ora sottomano un LCD, ma credo che con quel comando dici solo se vuoi che il cursore sia lampeggiante o fisso, ovunque esso sia.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Datman

Qui dice "block-style cursor":
https://www.arduino.cc/en/Tutorial/LiquidCrystalBlink

Ma perché le informazioni sono sempre all'osso, incomplete e fumose???... :(
Hi,I'm Gianluca from Roma.I play&work with electronics since I was16(1984).
After 25yrs of maintenance on cameras&video mixers,since 2013myJob is HDTVstudios design.
Since Jan2015 IPlayWith Arduino:bit.ly/2F3LPWP
Thanks 4 a Karma if U like my answer

steve-cr

Qui dice "block-style cursor":
https://www.arduino.cc/en/Tutorial/LiquidCrystalBlink

Ma perché le informazioni sono sempre all'osso, incomplete e fumose???... :(
Tutto corretto, tutto bello, ma tanto il blocchetto che lampeggia...non lampeggia!
E non ci sono santi.
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

steve-cr

E siccome sanno che NON lampeggia, come ho detto poco più su, nel tutorial fanno una lcd.print nel SETUP (capito? così non c'è il refresh video e la riga non viene più scritta), e poi fanno il blink nel VOID.

Sicuramente anche voi le vostre schermate le mettete nel SETUP, vero?.....

Mah !!!
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

maubarzi

Sono finalmente riuscito a fare una prova e da quel che vedo funziona.
Avevo un codice provvisorio che refreshava il contenuto del display a tempo perchè non avevo ancora scritto la logica definitiva per refreshare solo quando cambia qualcosa.
Ovviamente il mio refresh, essendo rapido, andava a creare casino con il blink e quindi sfarfallava tutto alla velocità della luce.
Rallentando il mio tempo di refresh e lasciando quindi fare al blink è andato tutto a posto.
Ho semplicemente scritto lcd.blink() all'inizio del mio codice che scrive sul display e alla fine della scrittura ho riposizionato il cursore nel punto che volevo far lampeggiare.

Il mio è un display 16x2
quindi scrivendo sempre tutti e 32 i caratteri, se non riposiziono il cursore, "lampeggia fuori schermo"
Per fare la prova ho scritto:

Code: [Select]

lcd.blink();
... codice che scrive tutto quello che mi serve sull'LCD
lcd.setCursor(2, 1);
lcd.print("#");
lcd.setCursor(2, 1);

Quindi ho messo il cancelletto come terzo carattere della seconda riga e riposizionato il cursore sopra.

Non ci crederete ma ... lampeggia!

Sicuramente anche voi le vostre schermate le mettete nel SETUP, vero?.....
Ovvio, dentro un while(true) ;)

EDIT:

Comunque mi piace di più come avevo fatto io, cioè scrivendo in modo alternato il valore e blank a cicli di un secondo, quindi mezzo secondo blank e mezzo secondo valore.
Per due motivi:
1) Posso far lampeggiare più di un solo carattere compresa l'unità di misura.
2) Cancellando il valore, per il mio gusto è meno chiassoso di come fa il blink che invece accende tutti i pixel del carattere.

EDIT 2:

Anche
Code: [Select]

lcd.cursor();
lcd.noCursor();

funzionano
Con queste due mi esce la sottolineatura dove c'è il cursore.

EDIT 3:
Io sto usando
Code: [Select]

#include <LiquidCrystal_I2C.h>

perchè il mio display ha l'interfaccia I2C
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

Datman

Bravo! Grazie :)
Sarebbe bello se esistesse un "Blank" temporaneo per un carattere: tolto il "Blank", riappare il carattere che c'era. Temo, però, che il display non abbia una funzione simile.
Hi,I'm Gianluca from Roma.I play&work with electronics since I was16(1984).
After 25yrs of maintenance on cameras&video mixers,since 2013myJob is HDTVstudios design.
Since Jan2015 IPlayWith Arduino:bit.ly/2F3LPWP
Thanks 4 a Karma if U like my answer

maubarzi

E' quello che fa il blink ma al contrario, invece di spegnere tutto con il blank accende tutto compreso l'albero di Natale!
Magari c'è una qualche funzione, che @gpb01 tirerà fuori dal cilindro, per invertire l'effetto.
Comunque l'effetto di cursor noCursor non è male.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

Go Up