![]() |
ESP 32 avec afficheur - Version imprimable +- F1ATB forum (https://f1atb.fr/forum_f1atb) +-- Forum : Forum de F1ATB (https://f1atb.fr/forum_f1atb/forum-3.html) +--- Forum : Routeur Photovoltaïque (https://f1atb.fr/forum_f1atb/forum-4.html) +--- Sujet : ESP 32 avec afficheur (/thread-1133.html) |
RE: ESP 32 avec afficheur - fredfan50@ - 28-02-2025 (28-02-2025, 12:00 PM)Mike a écrit : OK oui j'ai essayé les 4 mais tjs mirroir RE: ESP 32 avec afficheur - Mike - 28-02-2025 Je suis désolé, je n'ai plus d'idées. Je ferai des tests quand j'aurais reçu ma carte. Peut-être que d'autres personnes auront des idées ? RE: ESP 32 avec afficheur - fredfan50@ - 28-02-2025 ok merci RE: ESP 32 avec afficheur - Lolo69 - 28-02-2025 C est pour regarder depuis le retroviseur de ta voiture. Mais le plus simple est effectivement de jouer avec le parametre de rotation RE: ESP 32 avec afficheur - Mike - 28-02-2025 En regardant un peu l'API LovyanGFX, je suis tombé sur cette page : https://lovyangfx.readthedocs.io/en/latest/02_using.html Le paramètre de rotation est mentionné : // Set the rotation direction from 4 directions from 0 to 3. // (If you use rotations 4 to 7, the image will be mirrored.) Du coup je me demande si dans votre cas, pour une raison qui m’échappe vous vous retrouveriez pas avec un paramètre de rotation entre 4 et 7. Vu que vous êtes en mesure de compiler le code, peut-être pourriez vous coder en dur la rotation à 3 par exemple afin de voir si cela corrige le problème. Dans le code de la V14.02 il y a 2 appels à setRotation à modifier : - Ecran.ino ligne 26 - Server.ino ligne 574 Essayez de remplacer ces deux appels par : lcd.setRotation(3); Ça fera peut-être avancer le schmilblick. RE: ESP 32 avec afficheur - Lolo69 - 01-03-2025 Tu Si les modifs setRotation ..ne suffisent pas rajouter derrière les 2 lignes suivantes pour observer l effet obtenu, mais comme son nom l indique la fonction setRotation ne fait que tourner l ecran… donc il faut vraiment réinitialiser ce mode miroir avec les commandes ci dessous que j ai pu trouver ( pas pu tester) sur les docs // Réinitialiser le mode miroir lcd.writecommand(0x36); // Commande MADCTL lcd.writedata(0x00); // Mode normal sans inversion Il faudrait voir dans le fichier user_setup.h de la bibliotheque s il n y a pas des lignes à commenter/decommenter pour supprimer ce miroir. Ps : pourquoi cette possibilité de miroir existe t elle , à qui et à quoi ca pourrait servir ? Je ne vois de situation dans laquelle on devrait regarder dans un miroir pour lire l afficheur RE: ESP 32 avec afficheur - F1ATB - 01-03-2025 Essayez d'appuyer 3S sur l'écran pour passer en mode calibrage de l'afficheur. Je ne sais pas si cela peut résoudre. André RE: ESP 32 avec afficheur - Lolo69 - 01-03-2025 Non ce n est pas un problème de calibration… Selon la bibliothèque ou sa version il y a des choix possibles pour passer en mirror ou pas… c est utile pour les langues qui ecrivent de gauche à droite ou de bas en haut…. Donc selon la fabrication de l ecran il est possible que ce soit mirroré par defaut… Pour ceux qui on un ecran qui fonctionne vous pouvez tester de passer en miroir avec les commandes // Réinitialiser le mode miroir lcd.writecommand(0x36); // Commande MADCTL lcd.writedata(0x00); // Mode normal sans inversion En remplacant 0x00 par 0x21 ou 0x41 ca devrait produire son effet Je teste ca apres le menage ;-) RE: ESP 32 avec afficheur - Lolo69 - 01-03-2025 ma piste est la bonne , de mon coté c etait OK et j ai fait le mlrroir en placant les lignes apres les lignes lcd.setRotation( ); lcd.writecommand(0x36); // Commande MADCTL lcd.writedata(0x68); // Mode normal sans inversion H68 ca donne en binaire 0110 1000 => reflexion vertical ; reflexion horizontal ; couleur BGR donc pour ceux qui sont "naturellement" inversé avec ces 2 memes lignes ca devrait remettre à l endroit .... le 0x68 vient des bits de la commande MADCTL Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 --------------------------------------------------------- MX | MY | MV | ML | RGB | BGR | MH | MX Où chaque bit a la signification suivante : MX (Bit 7) : Contrôle la réflexion horizontale (mirroring horizontal) de l'écran. 0: Pas de réflexion horizontale. 1: Réflexion horizontale. MY (Bit 6) : Contrôle la réflexion verticale (mirroring vertical) de l'écran. 0: Pas de réflexion verticale. 1: Réflexion verticale. MV (Bit 5) : Contrôle la rotation de l'écran. 0: Rotation normale (portrait). 1: Rotation de 90° (paysage). ML (Bit 4) : Ce bit contrôle l'ordre des pixels de l'écran dans les affichages LCD. Il peut être non utilisé sur certains modèles. 0: Mode par défaut (pas d'effet visible sur certains modèles). 1: Mode alternatif (peut affecter l'orientation selon les modèles d'afficheurs). RGB (Bit 3) : Contrôle l'ordre des couleurs de pixels. 0: Format RGB (Red, Green, Blue). 1: Format BGR (Blue, Green, Red). BGR (Bit 2) : Ce bit est parfois interprété comme un contrôle pour l'inversion des couleurs, mais il est souvent équivalent au RGB dans les écrans plus récents. 0: Pas d'inversion de couleurs (RGB). 1: Inversion des couleurs (BGR). MH (Bit 1) : Ce bit contrôle la mise en miroir des lignes. 0: Pas de miroir des lignes. 1: Miroir des lignes. MX (Bit 0) : Ce bit est souvent dupliqué en ce qui concerne la réflexion horizontale et fait également référence à la direction du balayage des lignes. 0: Balayage horizontal normal. 1: Balayage horizontal inversé. RE: ESP 32 avec afficheur - Frevan - 01-03-2025 Salut J ai eu le même problème: ecran miroir. Je me suis orienté du coté de MIKE : "Dans le code de la V14.02 il y a 2 appels à setRotation à modifier : - Ecran.ino ligne 26 - Server.ino ligne 574" Essayez de remplacer ces deux appels par : lcd.setRotation(3);" Et ça n a pas marché , j ai ensuite remplace par lcd.setRotation(7), et les écritures sont redevenues normales. Par contre je ne peux plus modifier la rotation depuis la page web. Ensuite l ecran etait remplie au 3/4 et en mode portrait; dans ecran.h ligne 54 à 57 j ai inversé les chiffres : cfg.memory_width = 320; cfg.memory_height = 240; cfg.panel_width = 320; cfg.panel_height = 240; et ligne 60 : cfg.offset_rotation = 1; et igne 92 : cfg.offset_rotation = 1 j y connais rien en code peut être que ce n est pas la bonne démarche mais ça a fonctionne bonne journée |