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 :

ATMEGA328P et HC05 les messages ne passent pas.


Sujet :

Arduino

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 ATMEGA328P et HC05 les messages ne passent pas.
    Bonjour le Forum
    Je suis en phase finale de développement d'un montage relativement complexe à partir d'un Arduino Uno, d'un module HC05, d'un afficheur, d'un clavier et d'un module RTC. Tout cela fonctionne parfaitement bien sur ma plaque de développement. Aussi j'ai réalisé le circuit imprimé correspondant mais avec un ATMEGA 328P en "standalone". Bien que le circuit soit correct, après connexion à un module BlueTooth HC05, les messages transmis par mon portable ne semble pas être compris.
    Aussi, pour simplifier les choses, j'ai réalisé une petite maquette avec seulement l'Arduino Uno et un HC05 et le prog suivant:
    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
    #include <SoftwareSerial.h>
    #define RXPIN 2   //GRIS
    #define TXPIN 3   //BLANC
     
    SoftwareSerial bt(RXPIN, TXPIN); // RX, TX
    String trame, poub;
     
    void setup() {
      Serial.begin(9600); 
      bt.begin(9600);
      bt.println("Bonjour");
    }
     
    void loop(){
      while(!bt.available()){}
      trame="";  
      while(bt.available()){
        char inChar = (char)bt.read();
        Serial.print(inChar);
        trame += inChar;
        delay(10);
      }
       while(bt.available()>0) {poub = bt.read();}
      Serial.write(bt.read());
      delay(2000);
      Serial.println("");
      bt.println(trame);
    }
    Cela fonctionne parfaitement.
    Maintenant j'ai transposé le montage et le programme sur ATMega328P en "standalone" et là, même problème constaté qu'avec mon montage d'origine: le bonjour d'origine n'est pas reçu et le circuit renvoit des signes cabalistiques.
    Cela fait 3 jours que je planche la dessus et je n'en peux plus. Si quelqu'un a une idée?

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonsoir,

    Quand tu testes ton programme et montage sur la platine Arduino, comment est alimenté ton système ? Utilises-tu le port USB ?

    Quand tu fais tes tests avec ton Arduino sur ton circuit (en standalone), comment est alimenté ton circuit ? USB ou 5V ? Je présume que c'est une alimentation 5V : a-t-elle suffisamment de puissance ?

    Pour ton montage en standalone, supprime la commande suivante qui se trouve dans la fonction setup() :
    ainsi que tous les appels à Serial dans la fonction loop().
    En effet, si je ne me trompe pas, dans ce cas tu n'utilises pas le port USB, donc l'objet Serial et ses méthodes ne sont pas opérationnels. Et cela pourrait expliquer ton problème.

  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
    Quand tu testes ton programme et montage sur la platine Arduino, comment est alimenté ton système ? Utilises-tu le port USB ?
    Oui ma platine Arduino est alimentée par l'USB et lorsque je fais une maquette avec l'ATMega328 en standalone j'utilise les alim d'un arduino Uno: 5V et 3.3V.
    En effet, si je ne me trompe pas, dans ce cas tu n'utilises pas le port USB, donc l'objet Serial et ses méthodes ne sont pas opérationnels. Et cela pourrait expliquer ton problème.
    Oui lorsque j'utilise l'ATMega en standalone, je n'utilise plus l'objet Serial dans mon sketch:
    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
    #include <SoftwareSerial.h>
    #define RXPIN 2   //GRIS
    #define TXPIN 3   //BLANC
     
    SoftwareSerial bt(RXPIN, TXPIN); // RX, TX
    String trame, poub;
     
    void setup() {
      //Serial.begin(9600); 
      bt.begin(9600);
      bt.println("Bonjour");
    }
     
    void loop(){
      while(!bt.available()){}
      trame="";  
      while(bt.available()){
        char inChar = (char)bt.read();
        //Serial.print(inChar);
        trame += inChar;
        delay(10);
      }
       while(bt.available()>0) {poub = bt.read();}
      //Serial.write(bt.read());
      delay(2000);
      //Serial.println("");
      bt.println(trame);
    }
    Par contre, sur le circuit de mon projet final, j'ai deux alim régulées 5V et 3,3V.

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    As-tu pensé à relier les masses de tes deux alimentations ? Ont-elles suffisamment de puissance ?

  5. #5
    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,
    oui pour la petite maquette j'utilise l'USB de mon PC qui alimente un Arduino Uno que j'utilise uniquement comme alimentation 5V et 3,3V avec la masse bien sûr; pour alimenter un ATMega328P en 5V et un HC05 en 3,3V c'est grandement suffisant.

    Pour mon circuit imprimé final j'ai une alimentation autonome.

    Non je ne crois pas que ce soit là que se situe le problème. Je suis allé sur des sites anglo-saxons qui reportent aussi ce phénomène mais dans aucun d'entre eux une solution n'est apportée.
    J'ai l'impression qu'il y a un décalage de bit dans la transmission, mais alors pourquoi avec le montage Arduino Uno cela fonctionne alors qu'en ATMega328P cela "bugue" ?
    Images attachées Images attachées

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Puis-je voir le schéma électronique de ton circuit imprimé ?

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

Discussions similaires

  1. [PDO] Base de données en Unicode mais les accents ne passent pas
    Par seïna dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 30/12/2008, 16h04
  2. [SQL-Server] Les accents ne passent pas entre MS SQL et PHP ?
    Par stephane9422 dans le forum PHP & Base de données
    Réponses: 34
    Dernier message: 17/11/2008, 15h22
  3. les variables ne passent pas
    Par samiweb dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2007, 13h30
  4. [EasyPHP] Les variables ne passent pas sur EasyPHP
    Par b6i6o6 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 10/02/2006, 12h37
  5. Réponses: 6
    Dernier message: 25/11/2004, 14h16

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