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

Code : Tout sélectionner

print u'\u00b0'
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 :

Code : Tout sélectionner

deg = u"°C"
  deg = deg.encode('utf8')
  print deg
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.