Bonjour à tous
Je ne viens pas aujourd'hui demander de l'aide mais décrire le problème que j'ai eu et comment je l'ai résolu car cela pourra peut-être aider:
Mon projet très classique: un ESP8266 se connecte sur le Net pour récupérer heure et date. Plus un capteur d'environnement BME280 pour lire température, humidité et pression. L'affichage est assurée par une matrice 4x8x8(MD_MAX72xx). Un récepteur IR permet la commande du système grâce à une télécommande de téléviseur. qui permet de sélectionner les différents affichages.
Je programme tout cela avec Visual Studio Code et cela fonctionnement parfaitement.
Le problème: Après le développement sur mon PC, je passe à la mise en boîtier avec une alimentation autonome; et là rien ne va plus pour l'afficheur: un ou deux modules ne se mettent pas en route. Par contre, si j'appuie sur le reset, cela redevient normal. Cette situation n'est pas viable.
Le setup:
L'origine du problème:
Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void setup(){ matrice.begin(); matrice.setIntensity(0); matrice.displayClear(); matrice.addChar('$',dg); //remplacement du caratère '$' par '°' affMsg("Bonjour"); Wire.begin(); sens.begin(BME280); irRcv.enableIRIn(); //démarre le récepteur IR recupDateHeure(); //connexion au WiFi cpt=millis(); }
Je pense que l'origine du problème est le temps d'établissement de l'alimentation; avec suffisamment de tension pour démarrer, le programme fonce à travers le setup qui tente de démarrer l'afficheur. Mais lui n'en a pas assez et déraille un peu.
Ma solution: Retarder le lancement de l'afficheur.
Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void setup(){ Wire.begin(); sens.begin(BME280); irRcv.enableIRIn(); //démarre le récepteur IR delay(1000); matrice.begin(); matrice.setIntensity(0); matrice.displayClear(); matrice.addChar('$',dg); //remplacement du caratère '$' par '°' affMsg("Bonjour"); recupDateHeure(); cpt=millis(); }
Je ne sais pas s'il y aurait une solution plus élégante?
Si vous avez un commentaire là-dessus.
Partager