Go Down

Topic: Communication Bluetooth avec HC-05 (Read 1 time) previous topic - next topic

Poplurz

Bonjour a tous,
pour mon projet j'aurais besoin d'utiliser une communication par Bluetooth avec mon ordinateur en utilisant un HC-05.
Pour ce qui est de l'envoi de données sur le pc tout va bien mais lorsque qu'il s'agit d'envoyer un caractère du pc vers l'Arduino la rien ne se passe...

Par exemple ce code classique ne marche pas :
Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(14, 15); // RX | TX

void setup()
{
  pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
  digitalWrite(9, HIGH);
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400);  // HC-05 default speed in AT command more
}

void loop()
{

  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available())
    Serial.write(BTSerial.read());

  // Keep reading from Arduino Serial Monitor and send to HC-05
  if (Serial.available())
    BTSerial.write(Serial.read());
}
 

Mon code de test (le mode lecture pose problème):
Code: [Select]
#include <SoftwareSerial.h>
SoftwareSerial hc05(14,15);
#define lecture 1
#define ecriture 0

void setup() {
  Serial.begin(115200);
  hc05.begin(115200);
}

void loop() {
  #if ecriture
  hc05.println(millis());
  Serial.println(millis());
  #endif
  #if lecture
  if (Serial.available()){
    char lettre=Serial.read();
    Serial.println(lettre);
  }
  if (hc05.available()){
    char lettre=hc05.read();
    Serial.println(lettre);
    hc05.println(lettre);
  }
  #endif
}


Petite précision j'ai un arduino mega 2560 et je peux quand même accéder au mode AT avec cette méthode : https://www.youtube.com/watch?v=EYEgoHnxjPo

Merci d'avance pour votre aide :)

J-M-L

#1
Sep 18, 2016, 04:16 pm Last Edit: Sep 18, 2016, 04:20 pm by J-M-L
115200 c'est trop rapide pour software serial généralement essayez de configurer à une vitesse inférieure

Pourquoi vous ennuyez avec software serial alors que sur le MEGA vous avez plusieurs port serial en matériel. Connectez votre module BT sur Serial2 par exemple
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Poplurz

Effectivement je pensais que pour utiliser d'autres ports série avec le mega je devais passer par SoftwareSerial, je viens d'utiliser Serial2.
Cependant j'ai besoin pour mon projet d'une vitesse de communication relativement élevée
Mais surtout que ce que je ne comprends pas c'est que la communication marche très bien dans un sens (écriture sur l'ordinateur mais pas dans l'autre (écriture sur le Bluetooth).
Est-ce un problème du type maître/esclave ou provenant du port utilisé (j'ai un peu cherché et je ne vois pas tellement en quoi cela pourrais être un des deux)

J-M-L

#3
Sep 18, 2016, 05:06 pm Last Edit: Sep 18, 2016, 05:10 pm by J-M-L
Comment le PC envoie ses données ?

Pouvez vous décrire quelles sont les pins connectées et à quoi? Une photo d'un petit dessin à la main des connexion peut aider

(Et votre nouveau code arduino et des détails du côté émetteur )
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Poplurz

Après une après-midi de recherches en utilisant ce code modifié :
Code: [Select]
#define lecture 1
#define ecriture 0

void setup() {
  Serial.begin(115200);
  Serial3.begin(115200);
}

void loop() {
  #if ecriture
  Serial3.println(millis());
  Serial.println(millis());
  delay(500);
  #endif
  #if lecture
  if (Serial.available()){
    char lettre=Serial.read();
    Serial.println(lettre);
  }
  if (Serial3.available()){
    char lettre=Serial3.read();
    Serial.println(lettre);
    Serial3.println(lettre);
  }
  #endif
}


Et avec le logiciel "Termite" cela semble marcher (le logiciel "Putty" que j'utilisais semblais être la cause du problème...) finalement même le moniteur série d'arduino qui ne parvenait plus à s'ouvrir pour la communication en bluetooth semble remarcher !
Espérons que cela dure...

En tout cas merci de l'aide et du conseil sur l'utilisation de "Serial3" :)

J-M-L

Vous ne pouvez pas avoir sur le PC le même port série utilise à la fois par Putty et la console série arduino - un seul des 2 à le droit de parler sur la ligne série
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Go Up