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

Arduino Discussion :

Aide Ecran Nextion communication avec Arduino Mega2560


Sujet :

Arduino

  1. #1
    Membre habitué

    Homme Profil pro
    employé administratif
    Inscrit en
    juillet 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé administratif
    Secteur : Communication - Médias

    Informations forums :
    Inscription : juillet 2016
    Messages : 40
    Points : 141
    Points
    141
    Par défaut Aide Ecran Nextion communication avec Arduino Mega2560
    Bien le bonjour à toutes et tous,

    Et bien voilà, toujours dans le cadre de mon Ampli, après avoir réalisé (grâce à vous) la communication I²C, voilà que c'est l'écran Nextion qui pose problème...
    Outre le fait qu'il soit impossible de compter sur l'aide de ITEAD pour du support sur leurs propres produits... j'utilise l'écran sans librairie car celle-ci prends beaucoup trop de place et tue la SRAM...

    Donc... j'ai utilisé le Serial2 de la Mega, puis essayé avec le SoftwareSerial, mais toujours le même résutat :

    Pour le code :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    #include <SoftwareSerial.h>
    SoftwareSerial myNextion (10,11);
     
    String message;
     
    void serialEvent() {
      while (myNextion.available()) {
        char inChar = (char)myNextion.read();
        message += inChar;
        if(message.endsWith(".")){
          Serial.println(message);
          message = "";
        }    
      }
    }
     
    void setup() {
      // Start Services
      Serial.begin(9600);
      myNextion.begin(9600);
    }
     
    void loop(){
      serialEvent();
        if(myNextion.available()){
     
          if(message == "*0."){ // page aegduino
            currentPage = 'a';
          }
          if(message == "*1."){ // page sounduino
            currentPage = 'b';
          }
          if(message == "*2."){ // page domoduino
            currentPage = 'c';
          }
          if(message == "*3."){ // page aquaduino
            currentPage = 'd';
          }
          if(message == "*tv."){ // page TV
            currentPage = 'e';
          }
          if(message == "*bx."){// page box
            currentPage = 'f';
          }
        }
    }
    Et tout ce que j'obtiens :

    Nom : Capture4.PNG
Affichages : 2841
Taille : 5,1 Ko

    Dans le Nextion, je n'envoie pas le "component ID" mais je fais un print "*1." pour le bouton qui appelle la page 1,...

    Mais il y a des caractères qui remplissent le buffer, tous ces "ÿÿÿÿÿÿÿÿÿÿÿ..."
    Résultat est que l'arduino ne reconnait pas le message...

    Quelqu'un aurait-il une idée ? est-ce un problème de code ?
    J'ai essayé de mettre un startWith() et endWith(), mais rien n'y fait...

    Grand merci d'avance pour votre aide,

    Aegnor

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    avril 2004
    Messages
    7 476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 7 476
    Points : 10 591
    Points
    10 591
    Par défaut
    bonjour,

    - visiblement tu utilises les bons connecteurs.
    - Par contre, as-tu vérifié les niveaux en tension ? Peut-être qu'il faut insérer un MAX232 entre ta carte et ton écran (et dans ce cas j'espère que tu n'as pas cramé ton écran).
    - Peux-tu vraiment utiliser les 2 ports série en même temps ?
    - Je ne comprends pas pourquoi tu fais un myNextion.available() après ton serialEvent.

    Peut-on avoir la référence de ton écran pour connaître le type de connectique ?

  3. #3
    Membre habitué

    Homme Profil pro
    employé administratif
    Inscrit en
    juillet 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé administratif
    Secteur : Communication - Médias

    Informations forums :
    Inscription : juillet 2016
    Messages : 40
    Points : 141
    Points
    141
    Par défaut
    Hello Auteur,

    Tout d'abord, merci pour ta réponse rapide

    L'écran est le NEXTION NX4832T035_011
    La connectique est bien de l'UART (4 fils = +5, GND, TX, RX)
    les +5 et GND sont branchés sur une alim 5v Externe avec une jonction de GND sur la Mega2560
    TX Nextion sur RX Arduino (D10 pour SoftwareSerial ou Serial2 RX)
    RX Nextion sur TX Arduino (D11 pour SoftwareSerial ou Serial2 TX)

    Le Serial Nextion est bien prévu pour être branché directement sur l'Arduino

    Le message envoyé est reçu, mais uniquement après tous ces ÿÿÿ (qui correspondent à 3 par loop)

    Je vais déjà dégager tous les autres "myNextion.available()"
    voir si quelque chose change

    Aegnor

  4. #4
    Membre habitué

    Homme Profil pro
    employé administratif
    Inscrit en
    juillet 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé administratif
    Secteur : Communication - Médias

    Informations forums :
    Inscription : juillet 2016
    Messages : 40
    Points : 141
    Points
    141
    Par défaut
    Avec tous les autres "myNextion.available()" enlevés, ça donne le même résultat... toujours ces ÿÿÿ...

  5. #5
    Membre habitué

    Homme Profil pro
    employé administratif
    Inscrit en
    juillet 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé administratif
    Secteur : Communication - Médias

    Informations forums :
    Inscription : juillet 2016
    Messages : 40
    Points : 141
    Points
    141
    Par défaut
    J'ai trouvé une solution, mais qui crée un autre problème...

    les ÿÿÿ en boucle viennent de l'appel des pages...
    Dans le setup, je lui dit de commencer sur la page a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    currentPage = 'a';
    Et dans le loop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      if(currentPage == 'a'){ // Aegduino
        myNextion.print("page0");
        myNextion.write(0xff);
        myNextion.write(0xff);
        myNextion.write(0xff);           
     
      }
    Et donc, il répète le 0xff 0xff 0xff en boucle...

    Lorsque je commente les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      if(currentPage == 'a'){ // Aegduino
       // myNextion.print("page0");
       // myNextion.write(0xff);
       // myNextion.write(0xff);
       // myNextion.write(0xff);           
     
      }
    Le résultat donne le message correct dans le Serial.println

    Je suppose que la solution serait de mettre l'appel de la page juste après la lecture du message...
    avant de passer dans la boucle if(currentPage == 'a')

    Je vais essayer, et donner le résultat


    Aegnor

  6. #6
    Membre habitué

    Homme Profil pro
    employé administratif
    Inscrit en
    juillet 2016
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé administratif
    Secteur : Communication - Médias

    Informations forums :
    Inscription : juillet 2016
    Messages : 40
    Points : 141
    Points
    141
    Par défaut
    Voilà, c'était bien ça !

    Attention que ces braves ingénieurs de chez Nextion écrivent "page0" dans l'éditeur, mais que pour appeler la page, il faut écrire "page 0" sinon ça ne passe pas...

    Je retourne dans la discussion aide I²C pour le volume encore ce coup ci...


    Je passe la discussion en "Résolue"


    Aegnor

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

Discussions similaires

  1. Aide pour communication avec DLL C++
    Par BobaL dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 20/09/2013, 13h19
  2. Communication avec Arduino
    Par Stéphanie.Gautier dans le forum EDI et Outils pour Java
    Réponses: 1
    Dernier message: 23/05/2013, 23h07
  3. Bug communication serie avec arduino (busy)
    Par bizounours94 dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/07/2012, 10h39
  4. [Débutant][Applet] Communication avec Servlet - IO Exception
    Par gandalf_le_blanc dans le forum Applets
    Réponses: 35
    Dernier message: 16/04/2004, 14h29
  5. [SSL]Communication avec un serveur en https
    Par menon dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 04/09/2003, 17h38

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