Comportement de l'Arduino UNO WiFI rev2

Bonjour,

Depuis que j'utilise la carte UNO WiFi, j'observe des comportements curieux différents de UNO rev3
En voici un:
Associée à un écran LCD I2C librairie LiquidCrystal_I2C.h, l'affichage s'arrête au milieu d'un mot , la carte reste en standby à ce moment. Voir photo jointe

Sur 1ère ligne, le précédent affichage était: Consigne 27.7 B
L'affichage interrompu est Ambiance 19.50

Seules les lettres Am apparaissent.

Le programme est en standby comme sur un delay() très long.

Quelle recherche faut'il faire ?
Merci d'avance

20200407_043223.jpg

Cette rubrique est réservée aux "Tutoriels et cours".
STP utilise le lien "Report to moderator" pour demander au modo de déplacer ton message dans le forum principal.

Une différence de comportement n'est à priori pas totalement surprenante puisque la carte "UNO WiFi REV2" utilise un nouveau microcontrolleur (AT Mega 4809). il faudrait faire le point sur ses 'particularités', ses bugs, ses librairies pas encore totalement adaptées....

Certaines librairies sont spécifiques, dont wire la librairie de base de l'I2C

Utilser l'une des nouvelles cartes Arduino peut réserver des surprises...en dehors des considérations marketting les 'nouvelles UNO' ne sont pas vraiment des 'UNO', idem pour les "nouvelles Nano".

un doute : Board Manager a-t-il été utilisé pour installer le nécessaire pour cette carte ?
cette carte spécifique a-t-elle bien été sélectionnée avany de compiler ?

Oui je pense que ce comportement erratique est dû à cette nouvelle carte.
Bien sûr je cherche un bug de programme, pour l'instant aucun effet.
Board manager me propose Arduino Uno WiFi rev2 ; ça me parait correct.
La version 1.8.2 de AVR Boards est installé
Je viens de passer de Arduino megaAVR boards de 1.8.5 à 1.8.6 (résultat à observer)

Enfin je trouve bizarre que le bug intervienne toujours au milieu d'une écriture LCD , une à deux fois par jour

Bonjour

Voila votre photo, dans le message pour que tout le monde la voie :
20200407_043223.jpg

-publier le code (dans le corps du message, entre les balises appropriées)
-indiquer l'ensemble du matériel utilisé

Suite aux indications de al1fch j'ai fait passer Arduino megaAVR Boards de 1.85 à 1.86
et là la compilation devient impossible message çi après:

""""""""""
In file included from C:\Users\Alain\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master\LiquidCrystal_I2C.cpp:1:0:

C:\Users\Alain\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master\LiquidCrystal_I2C.h:60:40: error: expected class-name before '{' token

class LiquidCrystal_I2C : public Print {

^
"""""

Alors incompatibilité avec la bibli LiquidCrystal ?
Ça pourrait expliquer

AVR.jpg

Et puis je me demande s'il faut installer Arduino AVR Boards ET Arduino Mega AVR Boards

Bonjour

Et puis je me demande s'il faut installer Arduino AVR Boards ET Arduino Mega AVR Boards

Oui, pour pouvoir utiliser les cartes Arduino classiques ET la carte UNO WiFi REV2 qui est une carte 'à part' malgré son nom rassurant.

Pour info voici le sous-forum dédié à cette carte ... assez particulière qui visiblement n'intéresse pas grand monde sur ce forum essentiellement en raison de son prix déraisonnable.

https://forum.arduino.cc/index.php?board=126.0

Il me semble que c'est là que ça se joue
Depuis que j'ai upgradé Arduino megaAVR Boards à 1.8.6 la compilation est devenue impossible à cause de LiquidCrystal
Alors j'ai cherché une autre bibli LiquidCrystal : New LiquidCrystal lib qui elle se compile
Je l'essaie
A suivre...

La suite:

Si New LiquidCrystal est acceptée par le compilateur, pas réussi à la faire fonctionner: clignotement

Donc je suis revenu à la version 1.8.5 de Arduino megaAVR boards pour faire fonctionner le LCD

Le planté est toujours au même endroit de la boucle, juste après la lecture de 3 sondes DS18B20 avec OneWire.

C'est peut être là que ça ce passe?

J'ouvre un autre fil sur le sujet de incompatibilité entre Uno WiFi rev2 et LCD LiquidCrystal

Bonjour

c'est peut être du côté de l'I2C que les particularités des ATMega4809 jouent un tour à diverses librairies 'historiques'.

Dans un précédent fil je m'interrogeais sur le comportement de cette nouvelle carte, ce n'est pas une Uno rev3 améliorée.

J'ai un sketch qui tourne sans problème sur Uno Rev3, j'ai voulu l'adapter en ajoutant la consultation d'un serveur horaire et l'envoi d'une page HTML.

Avec Uno WiFi rev2, mon programme se bloque (en attente) toujours au même endroit, au milieu d'une écriture ce qui fait apparaitre un mot incomplet sur le LCD:
J'ai écrit "Consigne 31.5" , je vais écrire "Ambiance 19.5" et j'obtiens "Ambigne 31.5" puis attente comme dans un delay() infini.
Si je supprime la ligne , le plantage est sur la ligne suivante, mais ma carte est toujours connecté au wifi, elle attend ,ne répond plus aux requêtes son cycle (Loop) est interrompu.

Mon analyse: LiquidCrystal se plante pour une raison inconnue.

Voici mon cycle:

Après un setup d'initialisation, connexion au wifi , le cycle loop est ainsi

  • Led clignote 3 fois sur pin13
  • Lecture de l'heure sur serveur
  • Lecture de 3 sondes DS18B20 librairies OneWire + DallasTemperature
  • Traitement des informations
  • Led clignote 1 fois
  • Prise de décision suite réception information, action sur relais O/N
  • Affichage des température et de l'état du relais
    => c'est là que le planté intervient de façon erratique (1 2 3 fois / jour)
  • Led clignote 2 fois
  • Ouverture accès page web pendant 50% du temps de cycle
  • Bouclage après 45 secondes environ

J'ai fait des recherches sur les firums:

ou ici

J'avoue ne pas avoir tout compris, on parle de NewLiquidCrystal que je n'ai pas réussi à mettre en route.
J'ai vu cet article sur les pinStatus , j'ai désactivé l'allumage de la led sur pin13, j'attends d'en voir l'effet

Si quelqu'un a des idées et peut m'aider à comprendre les articles cités, je suis preneur.

Merci d'avance.

Je le crois aussi

Regardez le fil que j'ai ouvert pour poursuivre ce sujet : Incompatibilité entre UNO WiFi et ....

J'ai lu mais pas compris tous les posts qui abordent +- ce sujet parce ce que l'incompatibilité se manifeste de diverses façons.
Je tente une autre expérience : sur pin13 que j'utilisais pour une led

Mutiplier les fils de discussion n'est pas optimal , cela disperse les réponses.
Il était possible de rester dans ce fil, quitte à modifier son titre pour mieux cibler le pb

Ce fil a un avantage sur l'autre : l'I2C (suspecté) y est mentionné !
("Liquid Crystal" est une librairie dédié au afficheurs gérées en mode 4bits ou 8 bits)

Je ne suis pas motivé pour suivre la 'délocalisation'.....et ne verrait aucun inconvénient à ce que le modérateur fusionne les 2 fils !!

hypothèse : liaison I2C travaillant aux limites de la spécification (timing ? niveaux logiques?)
Les résistances de pull-up sur SCL et SDA sont elles biens présentes dans les cas du montage avec l'ATMega4809 ?

le bug se cache peut être ailleurs...dans les détails....pour cette raison sur ce forum il est demande (cf Règles du Forum francophoen) de fournit la description du câblage et le code de l'application.

Voici le sketch et le schéma dans le zip
ChauffageUnoWiFi_L.zip (129 KB)

ChauffageUnoWiFi_L.zip (129 KB)

Fichier non exploitable sur smartphone

Qu'en est-il des résistances de pull-up de l'I2C ? présentes sur l'afficheur ?

deux cartes récentes utilident un ATMega4809 : nano Every et Uno WiFi Rev2

des deux côtés on voit remonter divers soucis sur l'I2C en particulier pour les afficheurs LCD I2C :
https://forum.arduino.cc/index.php?topic=673074.0
on y voit évoquée une particularité des ATMega4809 quand aux pull-up internes.
A défaut de comprendre ce qui se passe pourquoi ne pas ajouter une résistance d'environ 4,7K entre SCL et Vcc, idem pour SDA. C'est peut être un coup d'épée dans l'eau...

les 'early adopters' essuient les plâtres >:( et leur petit nombre n'accélère pas l'émergence des solutions.

Je n'ai pas une vue détaillée de l'application (capteurs...) mais il me semble que la plateforme qui a le vent en poupe aujourd'hui pour ce genre d'application repose sur un ESP32 ( voire ESP8266) programmé sous IDE , bénéficiant d'une grande partie des librairies Arduino....

Dans mon cas particulier les cartes à ESP32 ( et ESP8266) sont devenues les 'cartes Arduino' !
Devant moi l'IDE habitel , disponibles les librairies habituelles.... et au bout du câble USB un ESP32 qui offre l'I2C, le SPI, des grands espaces mémoire, le WiFi, le BT classique, le BLE ...pour le quart du prix d'une UNO WiFI REV2.

Voici le schéma et le sketch

ChauffageUnoWiFi_L.zip (129 KB)

privilégier les infos dans le corps du message (avec les balises appropriées ) pour une plus grande
visibilité : visiteurs sur tablette de plus en plus nombreux sur smartphone, c'est mon cas.

Des message épinglés en tête de forum indiquent comment faire cela pour le code et pour les images.
(Un code lourd et complexe est , lui, à mettre en fichier joint, avec l'inconvénient d'être vu par un nombre plus faible de personnes)

Le bug d'affichage se produit-il avec un petit code simple se bornant à tester l'afficheur LCD I2C ?

le bug d'affichage fait pens er à un parasite (commutation de relais, de contacteur...ou autre charge inductive) mais comme il ne se produit pas avec une carte UNO, uniquement avec Uno WiFI REV 2, je n'en ai pas parlé.