Loading...
Pages: [1]   Go Down
Author Topic: Problema simboli speciali display QC1602a  (Read 428 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve ho necessità di scrivere il simbolo del grado ° con questo display, dai diversi post sembra sia basato sul processore Hitachi e sia uguale al HD44780U.

Ora ho trovato i caratteri speciali e le locazioni di memoria ma non riesco a capire come scrivere l'istruzione.

Ho provato ad inserirla con la seguente istruzione lcd.print(10110000); ma non è il simbolo del grado anche con l'istruzione lcd.print(00001011); niente da fare altri simboli smiley-roll

Come devo fare??
Logged

0
Offline Offline
Tesla Member
***
Karma: 83
Posts: 8243
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

che libreria usi?
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uso LiquidCrystal
Logged

0
Offline Offline
Tesla Member
***
Karma: 83
Posts: 8243
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora guarda l'esempio "CustomCaracter", in pratica ti insegna come accedere i sigoli pixel di un carattere, in modo da creare le tue lettere...
In quetso caso disegna un cuore stilizzato smiley

Code:
[..]dichiarazione:[...]// make some custom characters:
byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000
};

[..]per stamparlo:[...]
// create a new character
  lcd.createChar(0, heart);

« Last Edit: February 26, 2013, 09:43:11 am by lesto » Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a me non stampa un carattere cuore ma questo  dopo 22.00

Logged

Forum Moderator
Italy
Online Online
Brattain Member
*****
Karma: 219
Posts: 16522
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non tutti i display HD44780 compatibili adottano la stessa mappa dei caratteri.
Ad esempio, guarda questo datasheet: come puoi vedere, ci sono dei caratteri che non sono identici al tuo.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho trovato questo e funziona:

Code:
byte grado[8] = {              //configuro il carattere per rappresentare il grado centigrado
0b00000,
0b00100,
0b01010,
0b00100,
0b00000,
0b00000,
0b00000,
0b00000
};
int ciao;
questo lo crea e lo chiama ciao se ho ben capito, per scriverlo poi però non devo usare print ma write, così:
Code:
lcd.write(ciao);
così lo vedo smiley

Solo non mi è chiaro come creare con la struttura sopra nuovi caratteri  smiley-cry
la butto lì non mi linciate, 5 righe verticali e 8 righe orizzontali sono gli zeri gli uno sono i pixel accesi sulle righe.
« Last Edit: February 26, 2013, 03:52:46 pm by leo72 » Logged

Forum Moderator
Italy
Online Online
Brattain Member
*****
Karma: 219
Posts: 16522
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per favore, includi il codice usando gli appositi tag  smiley-razz

Detto questo, è vero. I caratteri personalizzati si scrivono con write, non me lo ricordavo neanch'io  smiley-sweat smiley-sweat

Per fare un carattere personalizzato, devi pensare che un bit è un pixel e che 0 sta per un pixel spento e 1 per un pixel acceso.
Se ti sviluppo il codice che hai messo usando "." per lo 0 e "X" per l'1, vedrai apparire il circolino dei gradi:

Code:
.....
..X..
.X.X.
..X..
.....
.....
.....
.....
Logged


0
Offline Offline
Tesla Member
***
Karma: 83
Posts: 8243
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Detto questo, è vero. I caratteri personalizzati si scrivono con write, non me lo ricordavo neanch'io  smiley-sweat smiley-sweat


allora è sbagliato l'esempio ufficiale, io ho preso da lì...
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Forum Moderator
Italy
Online Online
Brattain Member
*****
Karma: 219
Posts: 16522
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La scheda sul reference contiene invece l'informazione corretta:
Quote
To display a custom character on the screen, write() its number.
Logged


Tuscany
Offline Offline
Edison Member
*
Karma: 20
Posts: 1056
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai provato a scrivere


  lcd.write(0xDF);
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai provato a scrivere


  lcd.write(0xDF);

Questo scrive comunque un quadratino che sembra il simbolo del grado, come funziona l'istruzione 0xDF

Capito è in esadecimale.

Ho trovato questo link per creare i caratteri http://www.quinapalus.com/hd44780udg.html
« Last Edit: February 26, 2013, 05:41:39 pm by parapaolo » Logged

Forum Moderator
Italy
Online Online
Brattain Member
*****
Karma: 219
Posts: 16522
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come funziona l'istruzione 0xDF
Non è un'istruzione, è la rappresentazione esadecimale di 223.
Logged


Zafferana Etnea, Italy
Offline Offline
Newbie
*
Karma: 1
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

lcd.print((char)223);  smiley-eek
Logged

Pages: [1]   Go Up
Print
 
Jump to: