Je sais que je vais poser une question qui paraitra évidente, mais je n'ai pas trouvé la réponse, il doit me manquer les connaissances de base pour m'en sortir avec ce que j'ai lu.
Je suis un train de faire un montage avec un écran LCD JLX12864G de récupération et je n'arrive pas à afficher les symboles unifont que je souhaite.
J'ai compris qu'entre des guillemets je peux coller directement le symbole UFT8 que je souhaite mais je n'arrive pas à trouver ces symboles sur le net, dans l'aide de la bibliothèque u8g2 il y a bien des images des différents symboles mais le copier/coller ne marche pas (normal avec une image, ça je le comprends).
J'aimerais donc entrée directement l'adresse du symbole dont j'ai besoin (le sablier en 9200/23f3) mais rien à faire ça ne marche pas.
Je vois donc bien s'afficher le soleil, le nuage et le parapluie, mais pas mon sablier.
j'ai cette avertissement dans l'IDE Arduino :
"warning: invalid conversion from 'int' to 'const char' [-fpermissive] u8g2.drawUTF8(0, 48,0x23f3);"
Si quelqu'un peux éclairer ma lanterne cela m'aiderais beaucoup.
Merci pour ton aide @fdufnews mais ça ne fonctionne pas, l'IDE me renvoie l'erreur suivante: note: candidate expects 3 arguments, 4 provided exit status 1
Et la compilation s'arrête.
l'avertissement complet ci dessous si ça peut aider qqun:
J:\Documents\Arduino\UltraSoup\UltraSoup.ino: In function 'void loop()':
UltraSoup:26:34: error: no matching function for call to 'U8G2_ST7565_JLX12864_F_4W_SW_SPI::drawUTF8(int, int, int, int)'
u8g2.drawUTF8(0, 48, 0x23, 0xf3);
^
In file included from J:\Documents\Arduino\UltraSoup\UltraSoup.ino:2:0:
J:\Documents\Arduino\libraries\U8g2\src/U8g2lib.h:294:17: note: candidate: u8g2_uint_t U8G2::drawUTF8(u8g2_uint_t, u8g2_uint_t, const char*)
u8g2_uint_t drawUTF8(u8g2_uint_t x, u8g2_uint_t y, const char *s) { return u8g2_DrawUTF8(&u8g2, x, y, s); }
^~~~~~~~
J:\Documents\Arduino\libraries\U8g2\src/U8g2lib.h:294:17: note: candidate expects 3 arguments, 4 provided
exit status 1
no matching function for call to 'U8G2_ST7565_JLX12864_F_4W_SW_SPI::drawUTF8(int, int, int, int)'
Je ne pense pas qu'il y ait de prototype de fonction avec 4 paramètres.
Il faut donner une chaine de caractère.
tu peux essayer ça
sinon je pense qu'il faut que tu construise une chaine avec ta séquence d'octet, quelque chose comme ça je pense.
le code que je t'ai donné ne fonctionne pas, même une fois corrigé?
L'antislash est un caractère d'échappement, pour indiquer que ce qui suis n'est pas le caractère donné.
Le meilleur exemple est \n qui correspond au caractère ASCII 10 de fin de ligne.
C'est à dire que dans ton tableau d'octet, il y a aura un octet avec la valeur représenté par le caractère donnée 10 pour \n, 226 pour \xE2
@terwal , non ton code ne fonction pas j'ai l'avertissement suivant: warning: narrowing conversion of '240' from 'int' to 'char' inside { }
Pour ce qui est de l'antislash, tu m'a perdus
Mais je ne veux faire perdre de temps à personne, c'est déjà super de donner un coup de main, je retournerais chercher su google, mais je n'ai pas encore trouvé de réponse que je comprenais.
Je comprend ce que tu me dit sur "l'échappement" je crois mais après je suis perdu lol.
@J-M-L Merci pour l'amusement, à mon niveau c'est exactement ça, content que qqun comprenne, on a parfois du mal à me comprendre justement quand je dis que je fait ce genre de truc "pour m'amuser", chacun ces petits plaisirs ^^
Oui, c'est la même chose que ce que tu as proposer en plus de ligne
Même si je préfère passer par des tableaux, je ne sais pas trop pourquoi d'ailleurs, ta manière est plus simple et approprié
@J-M-L Merci pour ton lien sur la séquence d'échappement, c'est plus clair, et l'exemple en bas de page est très parlant (rien ne vaut un exemple).
@terwal Désolé de ne pas tester ton code mais effectivement la solution de J-M-L en une ligne est tout de même pas mal et là je viens de calculer les 3 coefficient C1, C2, et C3 de la CTN intégrée au bol du Soup & Co, il ne me reste plus qu'a faire une régulation en température et un générateur d'ultrason, une broutille
J'ai commencé par le plus facile est le plus fun pour me motiver.
Ca donne donc ça mon affichage:
@terwal j'ai quand même testé, car c'est en essayant qu'on progresse au final, bien que ce coup ci il n'y ai pas de problème de compilation, le sablier ne s'affiche pas.
J'imagine que le tableau ne renvoie à aucun caractère connu, quelque chose comme ça, ci dessous mon bout de code pour tester:
#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
U8G2_ST7565_JLX12864_F_4W_SW_SPI u8g2(U8G2_R0, 13, 11, 10, 9, 8);
const unsigned char sablier[4] = {0xe2, 0x23, 0xf0, 0x00};
void setup() {
// put your setup code here, to run once:
u8g2.begin();
u8g2.setContrast(85);
}
void loop() {
// put your main code here, to run repeatedly:
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_unifont_t_symbols);
u8g2.drawUTF8(30, 36, (const char*)sablier);
u8g2.drawUTF8(62, 50, "\xE2\x98\x95"); // Tasse chaude
u8g2.sendBuffer();
}