Affichage noir écran lcd

Bonjour a tous.
J’ai un montage avec un arduino nano et un écran LCD 16x2.
J’utilise le contact sec du contctauer jour/nuit de mon tableau electrique pour indiquer à mon programme si nous sommes en heure creuse ou en heure pleine.
J’ai remarqué que quasi systématiquement, au passage en HP à 7h25, l écran devient tout noir.
Parfois seulement la ligne du haut. Parfois les 2 lignes.
J’ai donc testé plusieurs choses:

Éloigner l’ arduino et son écran.
Plantage

Forcer manuellement le contacteur jour/nuit.
Pas de plantage

Forcer électriquement le contacteur j/n en mettant du 220v dans sa bobine
Pas de plantage

Debrancher les fils venant du contacteur jour/nuit.
Plantage.

L’écran est noir et je ne sais pas si malgré tout le code continu de s’exécuter.
Je débranche le transfo de larduino et ça repart…
Mais bon ce n’est pas un solution.

Je me trouve dans une impasse.
Un phénomène électromagnétique pourrait il venir parasiter le matériel.
Si quelqu’un a une idée je suis preneur…
Merci

Voir ici éventuellement : https://forum.arduino.cc/index.php?topic=620751.0

EDIT

J'ai déjà eu ce problème sur un projet avec un écran 4 lignes et un clavier matriciel.
L'écran se figeait lors de la mise sous tension d'une vanne 230V, mais pas l'ARDUINO.
J'avais utilisé une touche du clavier matriciel pour réinitialiser l'écran en cas de besoin : rappel de lcd.init() et lcd.clear().
Mais ce n'est qu'un palliatif.

Merci pour la réponse.
Dans mes différents essais, j'ai oublié de mentionner celui ou j'ai débranché le + de l'écran pour tanter de le redémarrer.
Sans succès.
Si je comprend bien, tu me propose d'ajouter un bouton qui reinitialise l'écran?
Et ça avec les 2 lignes de codes que tu as écrit?

Comme je le disais c'est un palliatif.
La vraie solution réside probablement dans le filtrage d'un éventuel parasite.
Voir sujet : https://forum.arduino.cc/index.php?topic=620751.0

Dans un premier temps je pense faire l'essai suivant.
Mettre le + de l'écran sur un interrupteur, ou ajouter un bouton avec une tempo.
De tel sorte à allumer l’écran que uniquement lorsque j'ai besoin de le lire.
Après tout, rien ne sert de le laisser allumé en permanence.
Si il est éteint lors du changement de l'état du relais, il ne sera plus affecté par d'éventuel parasites.

Qu'en penses-tu?

Mauvaise idée.
L'écran doit être initialisé par le logiciel avant d'être utilisé.
Deuxièmement il est déconseillé d'appliquer des tensions sur un composant non alimenté.
Il faut un bouton (avec pullup hard ou INPUT_PULLUP) sur une entrée de l'ARDUINO, et lorsqu'il est appuyé le logiciel réinitialise l'écran.
C'est un palliatif mais cela te permettra de déterminer si c'est l'écran qui est planté ou l'ARDUINO.
Une autre solution pour savoir si l'ARDUINO est planté est de faire flasher périodiquement (qq secondes) la LED D13 si elle est libre. Utiliser millis() bien entendu.

Je ne comprends pas que tu ne veuilles pas explorer la piste du parasite.
Le contacteur n'est pas là pour faire joli. Il commande forcément quelque chose.
Si le plantage intervient lors de l'ouverture (7h25) du contacteur jour / nuit c'est qu'un parasite secteur est généré par cette coupure.
Essayer de placer un filtre RC sur la bobine du contacteur serait un bon début. Voir le lien plus haut.

Merci encore pour la réponse et ton avis.

A ce jour, depuis la publication du message j'ai eu 0 plantage.
Je suis dans une configuration où j'ai éloigné l'ensemble et j'ai débranché le contact sec du contacteur J/N.
Le contacteur J/N s'ouvre bien à 7h30 mais je ne récupère pas l'info sur l'Arduino. (fils débranchés)
Evidemment le programme n'as plus l'info si il est en Heure Creuse ou Heure Pleine, mais bon s'est pour valider la piste.
Je laisse courir une semaine pour voir si ça plante ou pas.

Ensuite je rebrancherai le contact sec et ajouterais la fonction réinitialisation de l’écran.
Sur mon montage j'ai déjà un bouton qui permet d'afficher différentes donnée en fonction du nombre de fois où j'appui sur le bouton. Je pense donc ajouter la fonction "réinitialiser" entre chaque affichage.

Si c'est bien un parasite alors je placerai un filtre RC.

Ce que je ne comprend pas c'est que j'ai fait 2 testes :

J'utilise un des contact sec du contacteur pour donner l'info à l'Arduino si on est en HP ou HC.

  • Cas n°1 le contacteur J/N est piloté par le compteur EDF, à 7h25 le contacteur s'ouvre.
    => écran noir presque systématique.

  • Cas n°2, j'alimente à la volée la bobine du contacteur J/N, j'ai donc bien de 230 VAC qui traverse la bobine du contacteur. Il se ferme, je relâche les fils sur la bobine, le contacteur s'ouvre
    => pas de plantage.

Pourquoi on a pas le même résultat alors que je reproduit manuellement ce que fait le conteur EDF?
A mon avis la seul différence est la duré pendant laquelle la bobine du contacteur est sous tension.
Es-ce que cette donnée joue un rôle?

Non, je ne pense pas. C'est étrange en effet.
L'ouverture du contact se fait peut-être de manière plus rapide et franche quand elle est commandée par le compteur.

Bonjour,

Pas de plantage ce matin non plus, je laisse encore quelque jours avant de rebrancher.
Ci-joint mon schéma de câblage, juste pour info.

Il y a donc un autre contacteur (chauffe-eau). Il peut être source de parasites également.

Le deuxième contacteur est activé par un autre système. Quand il est activé, et désactivé chaque nuit pourtant avant 7h30 je n'ai jamais eu de plantage. Il doit être suffisamment éloigné.