Go Down

Topic: LCD affiche n'importe quoi après envoi d'un sketch (Read 1 time) previous topic - next topic

Couin

Chalut tout l'monde :)

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 :)

Merki
Couin
Un Couin vaut mieux que deux tu couineras :D
Retrouvez-moi en live tous les dimanches à 22H sur eurodance90.fr pour un mix au vinyle :D

J-M-L

Votre image



Décrivez:
- votre module lcd
- vos connexions
- votre arduino
- votre librairie et code de test
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

jpbbricole

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

fifi82

Slt
à l'initialisation tu fais bien :

Code: [Select]
 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

hbachetti

#4
Nov 04, 2018, 11:04 am Last Edit: Nov 05, 2018, 08:17 pm by hbachetti
Quote
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.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

jpbbricole

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

Couin

Hellooo,


hbachetti , roooh ,quelle agressivité dans votre dernier paragraphe :(
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
Code: [Select]
//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 :
Code: [Select]

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
Un Couin vaut mieux que deux tu couineras :D
Retrouvez-moi en live tous les dimanches à 22H sur eurodance90.fr pour un mix au vinyle :D

bricofoy

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
-tu savais que si tu passe le CD de windows à l'envers, tu entends une chanson satanique ?
-non, mais il y a pire : à l'endroit, ça l'installe !

Couin

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 ) :(
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 ;)


@bricofoy : Merci pour l'idée :)
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.
Un Couin vaut mieux que deux tu couineras :D
Retrouvez-moi en live tous les dimanches à 22H sur eurodance90.fr pour un mix au vinyle :D

Couin

On ne va pas se fâcher hein ;) Surtout entre bestioles à bec ( nos avatars ) :D
Un Couin vaut mieux que deux tu couineras :D
Retrouvez-moi en live tous les dimanches à 22H sur eurodance90.fr pour un mix au vinyle :D

hbachetti

#10
Nov 06, 2018, 12:07 am Last Edit: Nov 06, 2018, 08:36 am by hbachetti
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 ...  :smiley-confuse:
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

J-M-L

On ne va pas se fâcher hein ;) Surtout entre bestioles à bec ( nos avatars ) :D
D'où l'expression "prise de bec" :)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Couin

mdr J-M-L :)

@habachetti , peut etre mon afficheur défectueux et fait mal son reset :(
Un Couin vaut mieux que deux tu couineras :D
Retrouvez-moi en live tous les dimanches à 22H sur eurodance90.fr pour un mix au vinyle :D

al1fch

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 ?

Couin

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


Un Couin vaut mieux que deux tu couineras :D
Retrouvez-moi en live tous les dimanches à 22H sur eurodance90.fr pour un mix au vinyle :D

Go Up