J’ai appliqué les instructions décrit dans « Affichage à distance du Routeur Photovoltaïque»
Mais l’écran reste toujours allumé.
J'ai consulté le forum et compris que l'écran pouvait rester allumé sur les émissions du WIFI de la carte Display. J'ai torsadé les fils et j'ai la même anomalie. Ensuite j'ai débranché le capteur de la broche n° 33 et j'ai toujours le problème.
Sur un ancien forum André a répondu que pour avoir un éclairage constant il était nécessaire d’alimenter la broche 33 en 3,3V. (cela permet de simuler une présence en continu)
J’ai vérifié que le détecteur fonctionne bien; Puis j’ai fait des mesures de tension: quand l'appareil IR détecte une présence il envoie 3V et quand il ne détecte rien il envoie 0V. Donc le GPIO33 reçoit 3v en cas de présence.
J’ai consulté le programme pour comprendre mais je ne suis pas assez formé C++:
- Je ne comprends le INPUT_PULLUP dans la ligne « pinMode(GPIO_IR, INPUT_PULLUP); » car dans la fonction LireIR il y a : »if (IR == 1) { //Présence source de chaleur en mouvement »
En pièce jointe un extrait du programme pour les lignes GPIO33
12-07-2025, 09:02 PM (Modification du message : 12-07-2025, 09:20 PM par Jacques13.)
La configuration du port en PULLUP ne sert qu'a connecter une résistance de rappel interne à l'ESP au 3V sur le signal provenant du capteur IR. Techniquement ca permet d'éviter de devoir installer physiquement une résistance afin que le module fonctionne correctement.
Ca ne change en rien le fonctionnement du capteur IR, IR=0 pas de présence, IR=1 détection d'une présence
Pullup = résistance de rappel au +
Souvent les capteurs on en sortie un colleteur ouvert, ce qui permet d'adapter la tension de sortie du signal comme on le souhaite afin de s'adapter à la tension du récepteur. Dans ce cas une résistance de rappel est nécessaire au bon fonctionnement du signal de sortie du capteur. Afin de simplifier le câblage, les puces des contrôleurs intègrent cette notion de "collecteur ouvert" en offrant la programmation du "pullup" sur le port concerné.
En recherchant sous Internet afin de comprendre j'arrive plutot au contraire :La configuration avec INPUT_PULLUP est adaptée si le détecteur IR est câblé pour tirer la ligne à LOW lorsqu’un signal est détecté.
Donc IR=0 si détection d'une présence.
13-07-2025, 04:47 PM (Modification du message : 21-07-2025, 11:24 PM par Jacques13.)
Non, le système pullup (tirer vers le haut) n'a rien à voir avec le signal de sortie avec ou sans détection, les deux sont possibles.
Le pullup n'est qu'une solution technique électronique, elle n'indique pas si le signal vrai (présence) doit être haut ou bas, c'est le soft qui gère cet état qui peut être haut en cas de détection ou bas.
En même temps, tu peux mesurer la tension sur la borne signal et GND pour vérifier comment ton détecteur fonctionne et s'il est compatible avec ton ESP. Il est clair que s'il fonctionne à l'inverse de ce que le code doit trouver, ca ne va pas fonctionner comme il faut.
J’ai depuis étudié pourquoi l’écran reste toujours allumé. Comme dit plus haut : J’ai vérifié que le détecteur fonctionne bien ( j’ai fait des mesures de tension: quand l'appareil IR détecte une présence il envoie 3V et quand il ne détecte rien il n’envoie rien. Donc le GPIO33 reçoit 3v en cas de présence.)
Dans le code, l'instruction «pinMode(GPIO_IR, INPUT_PULLUP)» tire le GPIO_IR (ici la broche 33) vers le haut à 3,3 V donc à HIGH constamment. Cela explique pourquoi l’écran reste allumé même sans capteur de mouvement branché. Quand l'appareil IR détecte une présence il envoie 3V au GPIO_IR, donc à HIGH et cela ne change rien. Pour mettre le GPIO à LOW il faut le connecter à la masse/ground ( suivant le principe du bouton poussoir configuré en Pull-up) .
J’ai donc modifié le code par un simple : « pinMode(GPIO_IR, INPUT); ».
Et cela fonctionne. Et si le souhait est de laisser l’écran toujours allumé il suffit de connecter le GPIO_IR à du 3,3V.
Je ne suis pas un habitué des forums et je ne sais pas comment informer André@F1ATB: Si quelqu’un peut le contacter, il jugera si cette discussion est juste et décidera de changer ou non le code mis à disposition sur son site.
21-07-2025, 11:11 PM (Modification du message : 21-07-2025, 11:34 PM par Jacques13.)
Le fait tirer le signal au 3V n'empêche pas en principe le capteur de passer à l'état bas (0V), le courant sera juste un peu plus important.
Le fait est qu'il existe plusieurs versions de ces capteurs avec une électronique différente et donc des réactions différentes pour un circuit donné.
Dans notre cas le pullup est nécessaire, non pas pour la raison technique évoquée plus haut, mais pour que l'afficheur fonctionne même lorsqu'il n'y a pas de capteur branché, le signal reste alors toujours haut (3V) et l'afficheur fonctionne toujours (c'est mon cas par exemple).
Il n'y a donc pas d'erreur dans le code, c'est juste que ton capteur ne semble pas supporter un rappel au 3V.
Par contre ton capteur avec sa ref mérite d'être référencé sur le site comme non compatible, car si tu le débranche l'afficheur sera toujours éteint.
Au fait, si l'état haut est 3V, l'état bas est 0V et non rien, que l'on pourrait assimiler à un circuit ouvert. C'est aussi ce qui explique qu'un éventuel pullup ne résistera pas au 0V imposé par le capteur (sauf dans ton cas manifestement)
Merci à Jacques13 pour son attention à mon problème.
Les détecteurs IR que j’ai sont ceux référencés par André dans sont article « f1atb.fr/fr/affichage-a-distance-consommation-ou-surproduction-electrique/ » : Module de détection automatique capteur AM312 DC 2.7 à 12V.
Je l’ai connecté sur le 5V et j’ai vérifié que : quand l'appareil IR détecte une présence il envoie 3V.
Dans le code, avec l'instruction «pinMode(GPIO_IR, INPUT_PULLUP)», la broche 33 est à 3,3 V donc à HIGH constamment, qu’elle soit branchée ou non au détecteur. Pour que le système fonctionne je pense que le détecteur, s’il ne détecte rien, devrait mettre le GPIO à la terre/ground pour le mettre à LOW. Les détecteurs que j’ai achetés ne le font pas.
Le INPUT_PULLUP est pour laisser allumé si on n'utilise pas de detecteur IR.
Les détecteur, en général, il faut les alimenter en 5V et sortent des signaux entre 0 et 3.3V. Le pullup étant alimenté par une résistance élevée, ne gène pas le détecteur pour imposer =0V quand il n'y a pas de mouvement.
(23-07-2025, 03:11 PM)laprobert a écrit : ... Pour que le système fonctionne je pense que le détecteur, s’il ne détecte rien, devrait mettre le GPIO à la terre/ground pour le mettre à LOW. Les détecteurs que j’ai achetés ne le font pas.
C'est exactement ce qu'il fait mais il n'aurait s'emble t il pas la "force" de le faire et c'est bien ce que dit le schéma de ce PIR.
En effet, le signal du capteur passant au travers d'une résistance de 20K, par rapport au pullup ESP de 45k, le signal ne peut retomber à 0 mais restera bloqué à 1V environ (1/3 de la tension du signal de sortie), ce qui sera considéré par l'ESP comme positif au même titre que 3V.
Pour résoudre ce problème il faudrait remplacer cette résistance par un court circuit afin que le 0 ait plus de "force".
Je pense que ce capteur qui n'a qu'une consommation de 0,1mmA est destiné à fonctionner sur pile. Le but de la résistance de 20K étant elle aussi destinée à limiter la consommation globale de ce circuit.