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
Votre image
(http://forum.arduino.cc/index.php?action=dlattach;topic=577174.0;attach=280348)
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.
@+
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é (https://fr.wikipedia.org/wiki/I2C) 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 :(
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 ) :(
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.
On ne va pas se fâcher hein ;) Surtout entre bestioles à bec ( nos avatars ) :D
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:
On ne va pas se fâcher hein ;) Surtout entre bestioles à bec ( nos avatars ) :D
D'où l'expression "prise de bec" :)
mdr J-M-L :)
@habachetti , peut etre mon afficheur défectueux et fait mal son reset :(
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 (http://"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 (https://www.youtube.com/watch?v=l-D_yehqCJ0)
(vous avez 2 fois http)
Merci ,je sais pas comment le 2eme http arrive là, car j'avais édité le post pour bien remettre :(
Tu obtiens le même résultat avec un exemple de la librairie que tu utilises ?
un exemple que tu modifies pour afficher des trucs en boucle avec des delay() entre chaque affichage.
Je retesterais (suis pas chez moi là), mais de mémoire j'avais testé avec le code fourni sur la page du constructeur : https://www.dfrobot.com/wiki/index.php/LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009
Ca faisait pareil aussi.
J'ai la même chose avec un bête script où j'affiche une valeur que j'incrémente une valeur avec millis() .
J'ai des afficheurs 16x2 en HD44780 que mon pote m'avait filé il y a longtemps, il faudrait que je fasse un montage pour l'essayer sur l'arduino (je sais qu'ils marchent sur PC sous DOS avec MPXPlay).
pas d'afficheur de rechange ? ou un autre shield ?
Les afficheurs dont je fais mention sont des comme celui ci :
VIDEO (https://www.youtube.com/watch?v=ERM0zJD8fgM)
Mais sinon je n'ai pas d'autres shield ni LCD pour arduino.
A vrai dire, celui que j'ai là je l'avais acheté en même temps que l'arduino, sans spécialement avoir de projet (le fameux "ca peut toujours servir" mdr )
Edit : Décidément, pas moyen de faire un lien qui fonctionne ... pourtant je fais l'icône du maillon de chaine "Insert a link", et dans URL je mets le lien de la vidéo youtube et Insert.... je comprends RIEN !
J'ai déjà utilisé tout ça :
- écran 16x2 ou 20x4 tout seul
- écran 16x2 avec module I2C PCF8574
- shield écran + boutons
Je n'ai eu qu'un problème jusqu'à présent. R:W non relié à la masse. :smiley-confuse:
Ce qui ne semble ps être le cas ici.
Il vaut mieux avoir des pièces de rechange ...
@+
Exact. Il faudra que je vois pour recommander ca , parce que lors de l'achat c'était plus à titre de curiosité (j'allais donc pas faire un stock ).
Edit : Décidément, pas moyen de faire un lien qui fonctionne ...
le lien (https://www.youtube.com/watch?v=ERM0zJD8fgM)
Un lien doit ressembler à cela dans votre texte:
[url=https://www.youtube.com/watch?v=ERM0zJD8fgM]le lien[/url]
C'est pourtant le format que je mets mais quand je valide le message, ca met n'importe quoi :(
(http://forum.arduino.cc/index.php?action=dlattach;topic=577174.0;attach=280929)
Même pour mettre une image , il faut avoir validé pour avoir le lien de l'attachement, pour le remettre dans les balises dans le post.
Pas très intuitif :(
Oui... je tape les balises à la main maintenant c'est plus rapide :)
C'est pas l'pied !
(http://forum.arduino.cc/index.php?action=dlattach;topic=577174.0;attach=280940)
Bonjour Coin
Pas très intuitif :(
Je procède comme suit, avec le lien dans le presse-papier:
Sélectionner le texte qui reçoit le lien, cliquer l'icône
insert a link, PP coller, Ok (le doît apparaître dans cette 2ème fenêtre, OK.
Assez simple?
Cordialement
jpbbricole
Bonjour CoinJe procède comme suit, avec le lien dans le presse-papier:
Sélectionner le texte qui reçoit le lien, cliquer l'icône insert a link, PP coller, Ok (le doît apparaître dans cette 2ème fenêtre, OK.
Assez simple?
Cordialement
jpbbricole
Sur un ordi je fais ça aussi mais je suis souvent sur Mon smartphone et la barre de bouton n'est pas visible
avec le lien dans le presse-papier:
Sélectionner le texte qui reçoit le lien, cliquer l'icône insert a link, PP coller, Ok (le doît apparaître dans cette 2ème fenêtre, OK.
Oui mais quand il s'agit d'une image qu'on envoie en attachement, on a pas le lien avant d'avoir posté :(
Hellooo !
Alors, j'ai testé avec un autre LCD , à priori pas de souci.
(http://forum.arduino.cc/index.php?action=dlattach;topic=577174.0;attach=281149)
Mais du coup comme j'ai épluché un peu le cablage pour pouvoir brancher ce LCD, j'ai constaté que sur le shield LCD de DF ROBOT, les bits D0 à D3 sont reliés à rien, ce qui n'ets pour moi pas bon. Du coup, je les ia reliés à la masse et le souci ne revient pas , sauf de temps en temps si je fais un appui très bref sur le reset de l'arduino. Un appui un peu plus long permet de le remettre en bon affichage sans débrancher et rebrancher l'alimentation.
Je pense donc que l'afficheur du shield est on dira de qualité inférieur (en même temps à 3 ou 4e le shield livré ca peut aussi se comprendre) et qu'il y avait une erreur de conception de la carte puisque les 4 premiers bits étant en volants.
Merci à tous :)
les bits D0 à D3 sont reliés à rien
C'est normal. Cela ne m'a jamais posé de problème.
J'ai aussi un DFROBOT qui ne m'a jamais donné de soucis.
Un problème lié à l'exemplaire que tu as acheté ?
@+
Ce n'est pas impossible oui.
Pour les 4 bits en l'air, à moins que le chip ait des résistances de rappel en interne, j'ai vu déjà pas mal de schémas où il est recommandé de mettre à la masse. Dans un sens ca me parait pourtant logique, en électrique , les pattes en l'air sont souvent causes de trucs bizarroïdes :D
Au pire si pourrais toujours me faire un connecteur pour brancher facilement le gros LCD directement sur un arduino, vu que j'en ai plusieurs des LCD comme ca.
Au pire si pourrais toujours me faire un connecteur pour brancher facilement le gros LCD directement sur un arduino, vu que j'en ai plusieurs des LCD comme ca.
Ou utiliser ceci :
(https://cm.jumia.is/wR8E1onWfO3x-eXxq8aYm30drsU=/fit-in/500x500/filters:fill(white):sharpen(1,0,false):quality(100)/product/26/199/1.jpg?6136)
Module I2C à base de PCF8577 : GND + 5V + SDA + SCL. Potentiomètre intégré.
@+
Oui aussi, ce sera dans un prochain épisode , car j'imagine qu'il doit falloir rajouter un truc dans le programme pour que ca marche :)
Je vais checker si il y a des tutos sur le net .
Une simple librairie : https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library (https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library)
@+
Vu le prix des adaptateurs I2C ou des écrans avec l'adaptateur déjà soudé - je ne vois pas trop l'intérêt de rester sur les écrans nus sous cette forme
Cela a un intérêt dans un seul cas : lorsque l'on intègre l'écran sur un PCB, comme je l'ai déjà fait.
Mais si un câble doit être prévu entre l'écran et la carte, autant tirer 4 fils plutôt qu'une douzaine, y compris pour une maquette sur breadboard.
@+
Oui ok - ça prend aussi plein de pins qui peuvent être utilisées pour autre chose (si nécessaire of course)
ça présente aussi l'intéret de fonctionner quasiment tout le temps, contrairement à l'i2c facilement perturbé