apres plusieur heure de fonctionnement ecran lcd affiche une sucession de /??;,?

bonjour voila je revient vers vous car cela fait plusieurs jour que cela ce produit .

mon ecran apres un certain temps affiche une ligne de caractere comme dans la piece joint
mon ecran affiche l heure et la temperature en continue

voila je vous poste le code ici

Merci d avance

c'est normal, tu lui envoie trop de données trop souvent. Au bout d'un moment, il déraille.

Bonjour,

Rajoute des temporisations dans ton affichage et englobe toute tes chaines de caractère par F(), ça devrait régler le problème. Exemple : "blabla" -> F("blabla")

Aussi quand tu "print" un unique caractère (Serial.print("C") par exemple) utilise plutôt write() avec des simples quotes (exemple : Serial.write('C')).

skywod je comprend pas pour ceci (Rajoute des temporisations dans ton affichage et englobe toute tes chaines de caractère par F(), ça devrait régler le problème. Exemple : "blabla" -> F("blabla")

pour le write c ok =)

Par exemple Serial.print(“Coucou”) à remplacer par Serial.print(F(“Coucou”))

Ca place la chaine de caractère dans la mémoire flash (comme le reste du programme) et non dans la RAM destinée aux variables.

Merci

+1 B@tto

Sinon pour les temporisations c'est juste d'ajouter des delay() aux endroits qui te semble allez trop vite (en particulier au niveau de l'affichage sur le lcd). Ces écrans lcd sont pas bien rapide, il ne faut pas faire de rafraichissement continu dessus sinon soit tu vois rien, soit tu te retrouves avec ce genre de bug.

Plutôt que de mettre des delay(), fais une fonction d'affichage que tu conditionne avec millis().

j'ai aussi eu le cas avec un écran qui au bout d'un moment devait choper une perturbation sur l'alim ou je ne sais quoi, et qui n'était plus initialisé. Il m'a suffit de rajouter la commande d'initialisation dans mon code, qui se lance par exemple toutes les 30 minutes, et plus aucun soucis.

il y a aussi la solution de câbler la broche R/W, qui permet de vérifier que le LCD est prêt à recevoir une commande, car s'il en loupe une, ça fait ça aussi (d'autant plus si on est en 4 bits!). Mais je ne sais pas si la lib liquidcrystal gère ça...

Super_Cinci:
Mais je ne sais pas si la lib liquidcrystal gère ça…

Suffit de passer le n° de broche au constructeur :

LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)

http://arduino.cc/en/Reference/LiquidCrystalConstructor

J'ai eu le même problème à plusieurs reprises et ce n'était pas à cause du code mais à cause d'un mauvais contact sur l'un des fils. Regarde si tes fils son bien mis sur ton arduino.

résolue grace a jean francois

Tu peux mettre un petit bout de code qu'on voit ?

Merci