Le caractere ° dans la fonction Serial.print()

Comment bien gérer le caractère ° (degré) dans la fonction Serial.print

Car quand j'écris Serial.print("°") ça m'affiche des trucs bizzares sauf le °

Et plus généralement comment afficher les caractères spéciaux dans Serial.print Merci

Yep!

Le caractère '°' correspond au '176' de la table ASCII et au B0 en HEXADECIMAL.

Serial.print(176, BYTE);
ou
Serial.print((char)176);
ou
Serial.print('\xB0');

@+

Zoroastre.

Merci ça fonctionne impec!

J'ai utilisé la première.

Je crois qu'en attendant j'ai tout essayé sauf les 3 que tu m'a proposé! :grin:

Bonjour,

Question stupide, un Serial.print('°'); tout bête ne fonctionne pas ?

Yep!

Serial.print('°') = -15696

Marche pô.

J'avais été confronté au même problème.

Il me semble que j'oublie une autre possibilité pourtant...

@+

Zoroastre.

zoroastre: Serial.print('°') = -15696

Tient ... j'aurai pensé que ça marcherai ... avr-gcc prend pas les caractères de la table ascii étendu faut croire.

Yep!

Apparement, c'est limité au 128 premiers caractères, ce qui, en règle générale, est largement suffisant. C'est un peu la même problématique avec les afficheurs LCD d'ailleurs.

Il suffit juste de se rappeler qu'il est possible de convertir pas mal de chose en à peu prés tout (DEC, BYTE, HEX, OCT)

http://www.arduino.cc/en/Tutorial/ASCIITable

;)

@+

Zoroastre.

pour aller au delà de 127 il ne faudrait pas plutôt un unsigned char ?

Serial.print((unsigned char)'°');

osaka: pour aller au delà de 127 il ne faudrait pas plutôt un unsigned char ?

oui vu que un char signé c'est -127 / +127, mais ce qu'il faudrait savoir c'est si le compilateur prend les caractères via la syntaxe ' ' comme des signé ou des non signé en interne, si il les prend comme des signés alors le cast en unsigned va bugger.

skywodd: Bonjour,

Question stupide, un Serial.print('°'); tout bête ne fonctionne pas ?

Non effectivement j'avais testé aussi en attendant une réponse :grin:

Yep!

Yes Osaka.

Serial.print((unsigned char)'°');

C'est tout bon et plus lisible en sus. Du coup, les 255 caras sont accessibles plus simplement.

@+

Zoroastre.

C'est vrai que la dernière proposition est plus lisible.

Et maintenant en version 1.0, il faut:

Serial.write('°');