Offline
Newbie
Karma: 0
Posts: 36
|
 |
« on: February 26, 2013, 07:38:02 am » |
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  Come devo fare??
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8243
:(){:|:&};:
|
 |
« Reply #1 on: February 26, 2013, 08:21:37 am » |
che libreria usi?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #2 on: February 26, 2013, 08:57:22 am » |
uso LiquidCrystal
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8243
:(){:|:&};:
|
 |
« Reply #3 on: February 26, 2013, 09:41:17 am » |
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  [..]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
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #4 on: February 26, 2013, 02:39:24 pm » |
a me non stampa un carattere cuore ma questo dopo 22.00 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16522
Don't know what I do
|
 |
« Reply #5 on: February 26, 2013, 02:58:16 pm » |
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
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #6 on: February 26, 2013, 03:27:56 pm » |
ho trovato questo e funziona: 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ì: lcd.write(ciao); così lo vedo  Solo non mi è chiaro come creare con la struttura sopra nuovi caratteri  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
Brattain Member
Karma: 219
Posts: 16522
Don't know what I do
|
 |
« Reply #7 on: February 26, 2013, 03:56:03 pm » |
Per favore, includi il codice usando gli appositi tag  Detto questo, è vero. I caratteri personalizzati si scrivono con write, non me lo ricordavo neanch'io  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: ..... ..X.. .X.X. ..X.. ..... ..... ..... .....
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8243
:(){:|:&};:
|
 |
« Reply #8 on: February 26, 2013, 04:45:51 pm » |
Detto questo, è vero. I caratteri personalizzati si scrivono con write, non me lo ricordavo neanch'io  allora è sbagliato l'esempio ufficiale, io ho preso da lì...
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16522
Don't know what I do
|
 |
« Reply #9 on: February 26, 2013, 04:57:15 pm » |
La scheda sul reference contiene invece l'informazione corretta: To display a custom character on the screen, write() its number.
|
|
|
|
|
Logged
|
|
|
|
|
Tuscany
Offline
Edison Member
Karma: 20
Posts: 1056
|
 |
« Reply #10 on: February 26, 2013, 05:06:09 pm » |
Hai provato a scrivere
lcd.write(0xDF);
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 36
|
 |
« Reply #11 on: February 26, 2013, 05:16:40 pm » |
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
Brattain Member
Karma: 219
Posts: 16522
Don't know what I do
|
 |
« Reply #12 on: February 26, 2013, 05:41:03 pm » |
come funziona l'istruzione 0xDF
Non è un'istruzione, è la rappresentazione esadecimale di 223.
|
|
|
|
|
Logged
|
|
|
|
|
Zafferana Etnea, Italy
Offline
Newbie
Karma: 1
Posts: 10
|
 |
« Reply #13 on: March 01, 2013, 12:16:44 pm » |
lcd.print((char)223); 
|
|
|
|
|
Logged
|
|
|
|
|
|