User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
Ciao Riccardo, funziona funziona, ci vediamo stasera, che parlimo
anche per sabato a scuola.
Grazie, Ciao, Felice.
Il 27/04/2016 08.24, Riccardo Macoratti
ha scritto:
Ciao Felice,
prova una cosa del genere:
char simboloGradi = 0xb0; // oppure char simboloGradi = 176; se
non erro
u8g.print(String(temp, 1) + simboloGradi + "C");
Praticamente dichiari il char come intero e lo infili nella
print.
Fai sapere se non funziona.
Ciao,
Riccardo
On 04/23/2016 01:54 PM,
Felice.ferrazza wrote:
Grazie ragazzi, però adesso il problema rimane quello delle
prove, inserire cioè il carattere ° come codice all'interno
dell'istruzione, secondo voi come potrebbe essere corretta
l'istruzione: u8g.print(String(temp, 1) + "°C"); ?
Temp è una variabile di tipo float che contiene il valore di
temperatura
C'entra l'istruzione char?
Sono troppo arrugginito per ora per ricordare come si fa.
Grazie di nuovo.
Felice.
Il 23/04/2016 11.55, Giovanni
Orlandi ha scritto:
a me sembra elementare:
i caratteri del testo vengono rappresentati con dei
numeri
i caratteri ascii standard vanno da 32 (spazio)
a 127 (tilde)
tutti gli altri caratteri vengono rappresentati
con diversi codici a seconda del sistema di codifica
il carattere grado non è standard...
la libreria del display si aspetta i caratteri codificati
come XXXX
L' IDE di arduino usa la codifica YYYY
L' IDE sotto windows usa la codifica WWWW
per il carattere grado le codifiche XXXX WWWW sembrano
corrispondere,
Ciao Cristian, per
quanto riguarda le librerie sono le stesse, tutte le
librerie di arduino che servono anche quella del display
oled, sono satate copiate dal sistema n. 1 (finestre 7)
Il sistema linux mint dovrebbe usare solo le risorse
dell'IDE compilatore e caricatore del codice su arduino.
Potrebbe essere possibile che linux mint decida di usare
il compilatore locale piuttosto che quello IDE?
Accidenti se fosse così il compilatore C di linux è
l'alieno?
Felice.
Il 23/04/2016 10.49, Cristian Gaiatto ha scritto:
Se ho capito bene, anche se
l'IDE è uguale sia in win che in linux, utilizza delle
librerie del SO per compilare o qualcosa del genere, e
che quindi possono avere delle differenze.
Cristian
Il 23/04/2016 10:25, Felice.ferrazza ha scritto:
Grazie delle risposte, ma
prima di fare delle prove, non riesco a capacitarmi
di cosa possa cambiare tra un sistema operativo e
l'altro durante la compilazione dello sketch.
Io ragiono così.
Sistema operativo n. 1
-- IDE arduino 1.6.7
-- circuito elettronico micro, display oled ecc.
-- Sketch del programma.
-- compilazione a buon fine senza errori
-- accensione del circuito, elettronica e programma
funzionano regolarmente.
Sistema operativo n. 2
-- IDE arduino 1.6.7
-- circuito elettronico micro, display oled
ecc. uguale
-- Sketch del
programma
uguale
-- compilazione a buon fine senza errori
uguale
-- accensione del circuito, elettronica e programma
funzionano regolarmente ***
*** tranne la maledetta A che si frappone tra il
valore decimale e il simbolo di grado 21.3A°C.
Capite? il simbolo di grado viene visualizzato
correttamente ma "qualcuno" "qualcosa" ci mette
questa A sormontata da simbolo ^ quando uso Linux
Mint.
Come tutti i sistemi similari dal programma SKetch,
Il compilatore produce in uscita un codice in
esadecimale che viene caricato in memoria flash di
arduino.
A logica, suppongo che quel codice sia lo stesso
quando sono sul sistema operativo 1 e sistema
operativo 2.
Ma chi è quell'alieno che ci aggiunge la A
sormontata da ^ e in quale passaggio?
Mi sembra più un problema da investigatore che da
tecnico ;D
Felice.
Il 23/04/2016 09.09, Giovanni Orlandi ha
scritto:
anche io penso sia un problema di
codifica - charset etc...
in pratica devi capire il display oled che
codifica utilizza...
se vuoi un workaround, ti consiglio di
scrivere sul display tutti i caratteri da 128
a 255
vedere a quale codice corrisponde il grado
° e madarglielo come serial write oppure
definire una stringa come
char strGradi[3] = "*C" ;
e poi cambiare
strGradi[0] = codiceCharGrado ;
ovviamente la stringa non può essere
definita com costante nella flash ( niente F()
)
Gio
Il giorno 23 aprile
2016 06:49, Antonio Giovanni Colombo <azc100@gmail.com>
ha scritto:
Sono
digiuno di Arduino, ma sospetto che si
tratti di un problema di codifica UTF-8.
Se invece che il simbolo di grado ci
metti un qualsiasi simbolo ASCII puro
(tra 0 e 127, per esempio l'asterisco),
il problema dovrebbe "scomparire". Se è
questo il caso, dovresti poi impostare
la codifica a Latin1 o a
ISO-8859-qualcosa, ossia a qualcosa che
vive "bene" anche con la parte ASCII da
128 a 255.
Ciao a
tutti, mi succede una cosa
davvero strana riguardo al
simbolo del grado centigrado,
ovvero il cerchiolino che
rappresenta i gradi di
temperatura.
Questo che segue è il mio
problema.
Si tratta di un progettino con
arduino e un sensore che rivela
temperatura e umidità.
Se utilizzo il sistema operativo
finestre 7, IDE arduino 1.6.7,
lo sketch viene compilato senza
errori e scaricato al micro
atmega328 e il circuitino
visualizza su un display Oled
correttamente per esempio
21.3°C.
Adesso arriva il caso veramente
strano per me.
Praticamente ho fatto un copia e
incolla su linux Mint di
librerie, e Skecth.
Se cambio sistema operativo
(stesso PC) e uso Linux Mint,
uguale IDE, uguale libreria,
uguale Sketch il display
visualizza 21.3A°C.
Nessun errore di compilazione.
La A è sormontata dal simbolo di
elevato ^, in pratica qualcosa
inserisce questa A sormontata,
tra il 3 e il simbolo di grado.
Ho provato a mettere uno spazio
prima del simbolo ° ma niente.
Temp è una variabile di tipo
float che contiene il valore di
temperatura
float temp=dht.getTemperature();
u8g.print(String(temp, 1) +
"°C");
Altra cosa strana è che invece
se osservo i valori sulla
seriale di arduino vedo la
visualizzazione corretta senza
la A.
Serial.println(String(temp, 1) +
"°C"); // ok 21.3°C.
Qualcuno è capace di illuminarmi
del perchè succede questo
errore?
Fate uno sforzo per favore,
troviamo la soluzione, perchè
provo tremendamente un grande
fastidio che che mi succeda con
Linux e con finestre NO.
Ciao e a presto.
Felice.
-----------------------------------------------------------------------------------------
Luca 18,5 : "Poiché questa vedova è così
molesta le farò giustizia, perché non venga
continuamente a importunarmi".
Neemia 8,10 : "...questo giorno è consacrato
al nostro Signore; non siate tristi; perché la
gioia del Signore è la vostra forza".
GSM 345.6050488 / 327.0547392 / 392.0698126 -
Fax 06.62204735
--
-----------------------------------------------------------------------------------------
Luca 18,5 : "Poiché questa vedova è così molesta le farò
giustizia, perché non venga continuamente a importunarmi".
Neemia 8,10 : "...questo giorno è consacrato al nostro
Signore; non siate tristi; perché la gioia del Signore è la
vostra forza".
GSM 345.6050488 / 327.0547392 / 392.0698126 - Fax 06.62204735