IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

ESP8266 - MD_MAX72xx - problème d'alimentation résolu


Sujet :

Embarqué

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut ESP8266 - MD_MAX72xx - problème d'alimentation résolu
    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:
    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();
    }
    L'origine du problème:
    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.

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 900
    Par défaut
    Salut mormic.

    J'ai constaté dans les exemples de sketch, que fréquemment le code débute par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void setup()
    {
    	Serial.begin(115200);
    	delay(1000);
    ...
    }
    Je suppose qu'il faut laisser le temps à ce que ton ESP8266 atteigne un niveau de stabilité avant de démarrer les traitement.

    Que ce passe-t-il si dans ton premier setup, celui où tu as rencontré ton problème, tu mets dès le début un "delay(1000);" ?

    Cordialement.
    Artemus24.
    @+

  3. #3
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    Bonjour Artemus24
    J'ai aussi essayé ce que tu m'indiques, et en effet cela avait aussi résolu le problème.
    En continuant mon projet, j'ai eu besoin d'aller exécuter une routine de lecture d'un capteur. Et comme cela prenait un certain temps, j'ai pu supprimer le délai d'une seconde. Voilà comment cela est maintenant:
    Code arduino : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //**********************configuration**********************************************
    void setup(){
      pinMode(ALARM_PIN,OUTPUT);
      pinMode(ALARM_ON_PIN,OUTPUT);
      Wire.begin();
      irRcv.enableIRIn();         //démarre le récepteur IR
      sens.begin(BME280);
      lectureCapteur();           //permet de supprimer le delay(1000);
      matrice.begin();
      matrice.setIntensity(0);
      matrice.displayClear();
      matrice.addChar('$',dg);    //remplacement du caratère '$' par '°'
      affMsg("Bonjour",DELAI_AFFIC); 
      recupDateHeure();
      cpt=millis();               //point de départ pour les mises à l'heure
    }

    Tout fonctionne correctement.
    Je te remercie de ton aide.
    Bien cordialement
    Michel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème pour alimenter une liste
    Par mawelle dans le forum IHM
    Réponses: 2
    Dernier message: 31/03/2008, 11h30
  2. [Alimentation] Probléme d'alimentation de PC portable
    Par dragonfly dans le forum Composants
    Réponses: 3
    Dernier message: 25/04/2007, 09h51
  3. [Problème Matériel] Alimentation qui ne fonctionne plus
    Par kromartien dans le forum Composants
    Réponses: 15
    Dernier message: 26/03/2007, 19h10
  4. Problème d'alimentation
    Par O( N ) dans le forum Composants
    Réponses: 5
    Dernier message: 15/01/2007, 15h01
  5. [VB.NET] Problème pour alimenter une listbox.
    Par gueguen23 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 17/01/2005, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo