LiquidCrystal, caractères spéciaux

Salut à tous, au sujet de la librairie LiquiCrystal, je voudrais afficher des caractères spéciaux:

  • le signe degrés: ° ça passe pas avec lcd.print(°);

  • une case pleine: faut t'il forcement passer par la fonction createChar ?

  • et eventuellement des fléches, pareil, je ne sais pas si c'est possible.

par avance merci, je galère mais j'avance quand même.

Salut,

zekill: - le signe degrés: ° ça passe pas avec lcd.print(°);

lcd.write(248); (question déja posé il y a quelques semaines ;))

zekill: - une case pleine: faut t'il forcement passer par la fonction createChar ?

createChar ou peut être (jamais essayé) lcd.write(219);

zekill: - et eventuellement des fléches, pareil, je ne sais pas si c'est possible.

Tu l'as dit à l'instant -> LiquidCrystal -> createChar -> http://arduino.cc/en/Reference/LiquidCrystalCreateChar (Il existait un outil en ligne pour créer facilement des char custom mais il n'est plus dispo :~)

Yep!

Le problème des afficheurs en règle génerale est qu'ils ne possèdent que les 128 premiers caractères de la table ASCII (par souci d'économie). Le '°' va naturellement bien au dela du 128ème. Il va donc falloir le génerer, pas le choix.

Dans un sujet précedent, nous avions testé ceci : Serial.print((unsigned char)'°');

Même si je doute fortement que cela puisse fonctionner dans ton cas, un essai peut être fait :

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

@+

Zoroastre.

[EDIT1] Skywodd strike fast : Tu es sûr de ton lcd.write(248) (suis tout surpris)

merci les gars, grace à vous je viens de trouver.

pour le °: lcd.print((char)223); case pleine: lcd.print((char)255); fleche vers la droite: lcd.print((char)126);

le tableau est là: http://www.electronic-engineering.ch/microchip/datasheets/lcd/charset.gif il suffit de faire la conversion. avec mon afficheur ça marche nickel !

zekill: le tableau est là: http://www.electronic-engineering.ch/microchip/datasheets/lcd/charset.gif il suffit de faire la conversion. avec mon afficheur ça marche nickel !

:astonished: ... ya un tableau de char spécial pour les lcd ... hahaha je me fait ch*er depuis toujours à faire des createChar pour rien donc, c'est ballot :sweat_smile:

zoroastre: [EDIT1] Skywodd strike fast : Tu es sûr de ton lcd.write(248) (suis tout surpris)

J'y suis allez à grand coup de table ascii ... mais normalement '°' c'est 248 en décimal et F8 en hexa ... maintenant vu la table cité plus haut ... j'ai comme un gros doute ...

Yep!

Ben ouép, les afficheurs possèdent un espace mémoire appelé CGRAM qui permet d'insérer sa propre table de caractères si besoin. D'habitude çà se limite au 128 caractères courants...

Je crois que zekill nous a killé cette fois ci... :zipper_mouth_face:

XD

@+

Zoroastre.

en tout cas si ça vous rend service aussi je suis super content ... d'habitude c'est le contraire :grin:

zoroastre: Je crois que zekill nous a killé cette fois ci... :zipper_mouth_face:

:grin:

(Je vais tester mon lcd.write(0xF8) histoire de voir quel char il va afficher, moi curieux ? Non :P)

lcd.write(0xF8);

ça affiche un "X" avec une barre horizontale dessus.

zekill: lcd.write(0xF8);

ça affiche un "X" avec une barre horizontale dessus.

raaa c'est même pas drôle (J'aurai adoré qu'il affiche °) :grin:

Les datasheet sont bien pour ça ;) :

http://pdf1.alldatasheet.com/datasheet-pdf/view/63673/HITACHI/HD44780.html

Page 17 : les codes pour la ROM A00 Page 18 :les codes pour la ROM A02 Devinez laquelle est installée...

Et pour les autres, tapez le nom du "chip", dans le moteur de recherche "DuckDuckGo" (c'est le meilleur, il a pas de tracker :D)

zeric:
Page 17 : les codes pour la ROM A00
Page 18 :les codes pour la ROM A02
Devinez laquelle est installée…

La logique européen voudrais que ce soit la ROM A02 qui soit installé, la logique “made in china” serait plus pour la A00.
Mais comme dans ce monde tout est régit par la loi de murphy je suppose que c’est la A00 qui est installé (soit la version la moins complète).

zeric:
Et pour les autres, tapez le nom du “chip”, dans le moteur de recherche “DuckDuckGo” (c’est le meilleur, il a pas de tracker :D)

Nan mais c’est quoi ce site x)
Tient ça c’est un vrai moteur de recherche : http://bit.ly/8VzvdY
(Oui je sais le troll était facile :grin:)

Bonjour à tous,

En cherchant la solution pour afficher via la fonction print des caractères que j'ai créé dans la CGRAM de mon LCD, je suis tombé sur ce topic et grâce à vous, j'ai trouvé !

J’ai en effet testé l’instruction lcd.print((char)xxx) ; J’ai remarqué qu’en appelant les caractères de 0 à 7, on peut afficher les caractères créés avec la fonction createChar des librairies d’écran lcd. Ainsi : lcd.print((char)0); affiche le caractère précédemment créé à l’aide de lcd.createChar(0, caractereperso);

Cela me permet de simplifier le code pour utiliser des caractères perso dans des String à afficher.

Encore merci.