Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
ESP 32 avec afficheur
#11
(28-02-2025, 12:00 PM)Mike a écrit : OK Sad
Je vois dans les paramètres qu'il y a des options de rotations pour l’écran, avez vous essayé différentes valeurs ? Il y a peut-être un bug la dessus qui entraîne cet effet miroir ?

oui j'ai essayé les 4 mais tjs mirroir
Répondre
#12
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 ?
Répondre
#13
ok merci
Répondre
#14
C est pour regarder depuis le retroviseur de ta voiture.
Mais le plus simple est effectivement de jouer avec le parametre de rotation
Répondre
#15
En regardant un peu l'API LovyanGFX, je suis tombé sur cette page :
https://lovyangfx.readthedocs.io/en/late...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.
Répondre
#16
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
Répondre
#17
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é
Répondre
#18
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 ;-)
Répondre
#19
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é.
Répondre
#20
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
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 14 visiteur(s)