LCD affiche n'importe quoi après envoi d'un sketch

Chalut tout l'monde :slight_smile:

Ai ressorti l'arduino pour un nouveau projet.

Mais évidement, j'ai toujours le même problème que j'ai d'habitude quand j'utilise un LCD : Le LCD affiche n'importe quoi lorsque l'arduino démarre après l'envoie d'un sketch.

Bien sur, si je débranches l'USB et que je rebranche le fonctionnement normal se fait à nouveau, mais c'est super ennuyeux et en plus au bout d'un moment le port COM fini par ne même plus revenir (obligé de changer de prise USB et ça fait un autre port COM, qu'il faut que je choisisse dans l'IDE pour pouvoir continuer mes envois).

Comment éviter cela ?
J'ai pensé et essayé un lcd.clear() après le lcd.begin(16, 2) dans le void setup, mais ca ne résout pas le problème.

Si quelqu'un a une piste je suis preneur :slight_smile:

Merki
Couin

P1010125.jpg

Votre image

19b110061afdb5cc7b0ce9ab2144f3a9ac67747d.jpg

Décrivez:

  • votre module lcd
  • vos connexions
  • votre arduino
  • votre librairie et code de test

Bonsoir Couin

L'affichage en i2c ? Si oui y a-t-il des résidences entre le +5v. et SDA, SCL.
1.5kohm c'est pas mal.

Cordialement
jpbbricole

Slt
à l'initialisation tu fais bien :

 lcd.begin ();         
  lcd.setBacklight(HIGH);   
  lcd.home ();

si non ton bug est bizarre j'ai testé plusieurs LCD et j'ai jamais eu ce problème sauf si il y à des faux contacts sur l'I2C

Bien sur, si je débranches l'USB et que je rebranche le fonctionnement normal se fait à nouveau, mais c'est super ennuyeux et en plus au bout d'un moment le port COM fini par ne même plus revenir (obligé de changer de prise USB et ça fait un autre port COM, qu'il faut que je choisisse dans l'IDE pour pouvoir continuer mes envois).

Le module possède normalement les résistances nécessaires sur le bus I2C. Ce sont des 4.7K.
Personnellement je n'en ai jamais mis.

Si l'afficheur fonctionne de temps à autre, on peut dire que les connexions sont OK (en dehors d'éventuels faux contacts) et que le code fonctionne (en dehors de bugs éventuels).

Si le port COM disparaît c'est bien plus grave qu'un problème I2C.

On ne sait même pas de quel ARDUINO il s'agit.
Le code n'est pas fourni.

Personnellement je ne me fatigue plus à échafauder des solutions sur des hypothèses et des questions évasives, j'attends que l'auteur du sujet veuille bien se donne la peine de répondre à nos propres questions.

@+

hbachetti:
Le module possède normalement les résistances nécessaires sur le bus I2C. Ce sont des 4.7K.

Si l'environnement plus ou moins perturbé, c'est nécessaire, 4,7k c'est beaucoup trop, le maximum préconisé est 1,5k
Je travaille souvent sans et ça fonctionne très bien, mais le problème évoqué et typique de perturbations du bus

Cordialement
jpbbricole

Hellooo,

hbachetti , roooh ,quelle agressivité dans votre dernier paragraphe :frowning:
Certes milles excuses pour ne pas avoir pensé à préciser le matos et le code, ça fait 3J que je me fais ch... avec un autre problème que je n'arrive pas à résoudre et j'ai la tronche en bouillie donc j'ai zappé.
Mais en quoi je n'ai pas daigné réponse aux questions ?
Je n'ai pas pu repasser pour poster depuis, je ne vis pas comme tous les djeun's là avec un smartphone et internet dans le slip à poster dans les 2 secondes.
Aussi, je n'avais pas activé les alertes par email (d'ailleurs, je n'ai pas trouvé comment les mettre en auto email à chaque nouveau sujet qu'on post)

En ce qui concerne la perte de port COM, je pense que c'est surtout à force de débrancher et rebrancher l'USB pour couper et remettre l'alimentation, qui windows ne comprend plus rien au bout d'un moment, car si je branche sur un autre port, j'ai bien le COM, mais ca change de numéro de COM (donc chiant car faut aussi modifier dans l'IDE).

Pour l'afficheur, j'ai pas pensé à l'I2C, mon afficheur est un LCD KeyPad Shield de chez DF ROBOT, enfiché directement sur une carte Mega 2560 .

Je n'utilise pas les boutons .

Dans le code je met ce que l'on trovue dnas le début de l'exemple

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

 
/*******************************************************

This program will test the LCD panel and the buttons
Mark Bramwell, July 2010

********************************************************/

// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

Puis dans le setup :

void setup()
{
 lcd.begin(16, 2);
 lcd.clear() ;
 lcd.setCursor(0,0);
 lcd.print(" INITIALISATION ");
 lcd.setCursor(0,1);
 lcd.print("                ");
 delay(1000);
 lcd.clear() ;
 lcd.setCursor(0,0);
 lcd.print("    PRET  AU    ");
 lcd.setCursor(0,1);
 lcd.print(" FONCTIONNEMENT ");
}

L'afficheur fonctionne en temps normal, je doute à un mauvais cotnact aussi car le shield on sent bien qu'il ya du contact quand on l'enfiche.

Juste c'est quand j'envoie le sketch dnas l'arduino avec l'IDE, une fois l'envoi fini, l'arduino redémarre et c'est là que des fois , ca fait n'importe quoi au niveau affichage, m'obligeant à à couper et remettre l'alimentation.

Merci

tu peux essayer dans ton setup de faire l'initialisation deux fois :

void setup()
{
 lcd.begin(16, 2);
 lcd.clear();
 delay(500);
 lcd.begin(16, 2);
 lcd.clear();
......

j'avais résolu un problème similaire ainsi il y a quelque temps

Je n'ai pas pu repasser poster sur ce topic car pour moi pas de notif donc pas de réponse. La liste des sujets surveillés est un peu le parcours du combattant à avoir à avoir ( Avatar > Profile > Edit Forum settings > Settings > Notifications > Watched topic ) :frowning:
Je n'étais pas repassé manuellement sur ce sujet car je n'y pensais pas quand je postais l'autre. C'est pas plus compliqué que ca :wink:

@bricofoy : Merci pour l'idée :slight_smile:
Malheureusement, ca ne résout pas le problème. Je pense qu'un buffer doit pas se vider dans le contrôleur même du LCD car quand le problème apparait, même un appui sur le bouton reset de l'arduino n'y fait rien.
Du coup, il doit y avoir un décalage dans le registre du LCD jusqu'à ce que l'on lui coupe le jus.
Peut-être aussi que le shield est défectueux, si personne d'autre n'a ce problème.

On ne va pas se fâcher hein :wink: Surtout entre bestioles à bec ( nos avatars ) :smiley:

L'afficheur est indépendant. S'il est planté, le reset de l'ARDUINO devrait le réinitialiser puisque le setup() et ré-exécuté. Si cela ne résout rien, c'est bizarre.
J'ai un montage dont l'afficheur devient blanc quand le relais colle. Le relais alimente une vanne motorisée 230V, ce qui n'arrange pas les choses. J'ai essayé de découpler les alims, sans succès.
J'ai affecté une touche du clavier à la réinitialisation de l'afficheur et cela fonctionne, en attendant mieux ... :confused:

Couin:
On ne va pas se fâcher hein :wink: Surtout entre bestioles à bec ( nos avatars ) :smiley:

D’où l’expression “prise de bec” :slight_smile:

mdr J-M-L :slight_smile:

@habachetti , peut etre mon afficheur défectueux et fait mal son reset :frowning:

Bien regarder de près les 7 ou 8 connections par lesquelles l'afficheur reçoit les données (initialisation incluses). L'afficheur parait-il bien enfiché dans le shield LCD Keypad ?

Hello,

L'afficheur est soudé sur le shield. Dans le doute ,j'ai refondu les soudures (on sait jamais, uns soudure craquelée) au niveau du LCD, et du shield et ses headers aussi. Mais rien de mieux.

Quand le LCD affiche n'importe quoi, on voit quand même qu'il affiche quelque chose en fonciton de ce qu'on lui envoie.
Dans la vidéo ci dessous, ou voit par exemple le premier truc affiché, avec "µ D" dans la première ligne, correspond à "INITIALISATION" de quand ca marche normalement (plus loin dans la vidéo). Au même titre, l'affichage suivant , comprenant "$UB" correspond à "PRET AU FONCTIONNEMENT" .
Les divers reset au bouton ou renvoi du sketch (tous ne sont pas sur la vidéo) ne résolvent pas le souci.
Dès que je débranche et rebranche, c’est bon. On voit aussi que je fais des resets au bouton et aussi des renvoi de sketch, qui font ensuite rebooter l'arduino, c'est bon aussi.
Le problème n'est pas systématique, mais bien ennuyeux quand ca arrive car ca revient plusieurs fois.
https://www.youtube.com/watch?v=l-D_yehqCJ0

Bon j'ai beau faire, je pige pas comment on met un lien qui veuille bien marcher ...

Qu'est ce que tu pilotes à part l'afficheur ?
Solénoïdes, relais, moteurs, etc.

@+

Pour le moment rien à part une LED ou deux mais ca fait pareil même sans LED.

Voilà votre lien qui fonctionnne

(vous avez 2 fois http)

Merci ,je sais pas comment le 2eme http arrive là, car j'avais édité le post pour bien remettre :frowning: