User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
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