Page 1 sur 1
[RESOLU] Caractère spéciaux sur LCD2004
Posté : mer. 1 oct. 2014 19:32
par EVOTk
Bonjour,
J'utilise un afficheur de type LCD2004 pour afficher l'heure, ... et le résultat de ma sonde de température !
Aucune problème a cela, le seul problème viens pour afficher le symbole degrés sur l’écran LCD ! ( ° )
Je ne sait pas si cela est impossible ou non ?
Mon code est en UTF8.
Voila la partie du code qui affiche la température :
Code : Tout sélectionner
temperature()
lcd.lcd_display_string("Temp. int. : %s" % temp, 4)
Seulement la le résulat retourner est :
Temp. int. : 24
Si j'écrit :
Code : Tout sélectionner
temperature()
lcd.lcd_display_string("Temp. int. : %s °C" % temp, 4)
Python ne comprend pas le caractère ° est affiche n'importe quoi a la place.
Re: Caractère spéciaux sur LCD2004
Posté : mer. 1 oct. 2014 20:54
par mikebzh44
Vu que tu dis que ton code est en UTF8, il faut traduire le caractère ° en UTF8, non ?
Moi, j'essaierai ça :
Code : Tout sélectionner
lcd.lcd_display_string("Temp. int. : %s °C" % temp, 4).encode('utf8')
Ou un truc comme ça. J'ai pas de python sous la main pour tester
Re: Caractère spéciaux sur LCD2004
Posté : mer. 1 oct. 2014 21:04
par domi
Bonsoir,
A le LCD2004, j'en ai commandé un, mais je l'attend

devrait pas tarder...
Pour le °, peut-être un début de piste.
Lorsque tu es dans une "console" Python, un
retourne le signe des degrés.
ce qui donne pour être plus clair, dans un affichage complet.
Code : Tout sélectionner
$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print u'\u00b0'
°
>>>
A+
Re: Caractère spéciaux sur LCD2004
Posté : mer. 1 oct. 2014 21:24
par EVOTk
@mikebzh44 :
Merci de ta réponse, malheureusement sa ne marche. Cela me retourne :
Traceback (most recent call last):
File "/home/lcd/lcddark.py", line 80, in <module>
lcd.lcd_display_string("Temp. int. : %s °C" % temp, 4).encode('utf8')
AttributeError: 'NoneType' object has no attribute 'encode'
@domi :
N'oublie de commander les petits convertisseur logique qui vont bien pour l'exploiter avec ton raspberry pi !
Par exemple :
http://cgi.ebay.fr/ws/eBayISAPI.dll?Vie ... 1497.l2649
-------------------------------------------
j'ai essayer ceci :
Sa m'affiche bien :
°C
j'ai donc essayer de l'integrer dans mon programme :
Code : Tout sélectionner
deg = u"°C"
deg = deg.encode('utf8')
lcd.lcd_display_string("Temp. int. : %s %s" % (temp,deg), 4)
Maintenant, l'ecran m'affiche un caractère bizarre a la place (
Voir ici ), je pense que la limitation viens de l'écran.
D'autre idée peut etre ?
Re: Caractère spéciaux sur LCD2004
Posté : mer. 1 oct. 2014 22:08
par mikebzh44
Et ça :
Code : Tout sélectionner
str_temp = "Temp. int. : %s °C" % temp
lcd.lcd_display_string("%s" % str_temp.encode('utf8'), 4)
Re: Caractère spéciaux sur LCD2004
Posté : mer. 1 oct. 2014 22:12
par EVOTk
Re,
Sa donne une erreur :
Code : Tout sélectionner
Traceback (most recent call last):
File "/home/lcd/lcddark.py", line 81, in <module>
lcd.lcd_display_string("%s" % str_temp.encode('utf8'), 4)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 16: ordina not in range(128)
Re: Caractère spéciaux sur LCD2004
Posté : mar. 17 mars 2015 11:18
par EVOTk
Hello,
je chercher depuis un moment et j'ai trouvé !
un gentil monsieur a adapter les drivers actuel fourni avec l'ecran pour le Pi afin de pourvoir créer ses propres caractères !
Sa marche impeccable, merci a lui
et pour ceux que sa intéresse, voici le lien :
https://gist.github.com/DenisFromHR/cc8 ... ver-py-L17
Re: [RESOLU] Caractère spéciaux sur LCD2004
Posté : mar. 17 mars 2015 11:44
par domi
Salut Evotk,
Merci pour l'info, cela m'intéresse effectivement.