J'ai donc a priori suivis les indications à la lettre mais je n'arrive pas à obtenir une quelconque réponse du module.
J'ai bien un clignotement d'environ 2sec de la part du module BT m'indiquant que celui-ci se trouve en mode AT (ce qui donc devrait me permettre de me servir des commandes AT au biais de Tera Term (voir dans le tuto mis en url) mais rien à faire, je n'ai pas la moindre réponse.
Quelqu'un a-t-il déjà fait face à ce problème? Dans la mesure ou le module clignote (rouge donc pas de BT à mon avis) est-ce que cela signifie qu'il est totalement opérationnel ou bien il peut être endommagé etc..?
J'ai branché le Vcc du module au 3.3V de la MEGA (j'ai pu voir cependant sur le net que pour le module utilisé, il était préférable de le brancher au 3.3V, bien qu'il était possible de le brancher sur le 5V grâce aux régulateurs de tensions internes.
Pour les autres branchements :
Le GND du module branché au GND de la MEGA
Le TXD du module branché au RX2 (pin 17) de la MEGA
Le RXD du module branché au TX2 (pin 16) de la MEGA
Je joins également le code utilisé (trouvé sur le net lui aussi)
//**********************************************
// Module bluetooth HC06 envoi de commandes AT
// et affichage de la réponse du module
// D'après http://nicolasz68.blogspot.fr/2012/09/module-bluetooth-jy-mcu-v104-pour.html
//
//
//***********************************************/*
#include <SoftwareSerial.h> //Software Serial Port
#define RxD 17 //Pin 17 pour RX
#define TxD 16 //Pin 16 pour TX
SoftwareSerial BTSerie(RxD,TxD);
void setup()
{
Serial.begin(9600); //115200 si on veut
delay(500);
Serial.println("Bonjour - Pret pour les commandes AT");
// Configuration du bluetooth
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
BTSerie.begin(9600); //57600
delay(500);
BTSerie.print("AT+VERSION"); //Demande le N° de version
delay(1000);
// BTSerie.print("\n");
}
void loop()
{
char recvChar;
//On lit caractere par caractere sur le BTSerie et on affiche sur le Terminal Serie
if (BTSerie.available()) {
recvChar = BTSerie.read();
Serial.println(recvChar);
}
if (Serial.available()) {
recvChar = Serial.read();
BTSerie.write(recvChar);
}
}
Ce que je constate est que le module n'est jamais passé en mode AT. En revanche je suis capable d'envoyer des chaines de caractères passant par la carte arduino à destination de mon smartphone en utilisant l'application "Bluetooth Terminal HC-05" que vous connaissez probablement. Le chemin inverse n'opère pas : impossible d'envoyer une chaine de caractères depuis mon téléphone vers la carte en passant par le module Bluetooth (ce que je souhaite faire..)
Cela répond-il aux précisions que vous m'avez demandé?
Suivant les modules le moyen pour passage en mode AT est différent.
Sur les miens il faut maintenir le bouton poussoir appuyé pendant la mise sous tension.
J'ai également connaissance de cette manipulation pour passer en mode AT. Il existe aussi un moyen via la pin "KEY" or mon module ne dispose pas d'une telle pin.
Cela dit le problème semble se tourner vers la disponibilité inexistante du module..
Lorsque je rentre "AT" dans la console, sachant que le module est bien en mode AT (en témoigne la led du module) je devrais avoir un "OK" en retour dans la console mais il n'en est rien..
Si j'en reviens au code que j'ai partagé avec vous, j'ai remarqué que le booléen "BTSerie.available()" restait à 0 quoiqu'il arrive. J'en déduis donc que le module Bluetooth n'est pas disponible (champion!) mais pourtant il est en mesure d'envoyer des informations, puisque "Serial.available() >0"..
De plus le résultat de la ligne "BTSerie.print("AT+VERSION"); //Demande le N° de version" me retourne à l'écran de mon téléphone la chaine de caractères "AT+VERSION" donc le module ne passe pas en mode AT.
Je me demandais, est-il possible d'utiliser la communication BT pendant que le module est en mode AT?
Dans ce cas quelle serait la correction à effectuer? (je me permets de rappeler que j'ai remis dans le nez dans le langage C depuis moins d'un mois et que mes derniers cours datent de la première S..)
J'ai effectué la modification et je n'ai plus moyen d'envoyer de chaîne de caractère de l'ordinateur au smartphone, et toujours pas moyen de faire le chemin inverse..
//**********************************************
// Module bluetooth HC06 envoi de commandes AT
// et affichage de la réponse du module
// D'après http://nicolasz68.blogspot.fr/2012/09/module-bluetooth-jy-mcu-v104-pour.html
//
//
//***********************************************/*
#include <SoftwareSerial.h> //Software Serial Port
#define RxD 15 //Pin 17 pour RX
#define TxD 14 //Pin 16 pour TX
SoftwareSerial BTSerie(RxD,TxD);
#define BTSerie Serial2
void setup()
{
Serial.begin(9600); //115200 si on veut
delay(500);
Serial.println("Bonjour - Pret pour les commandes AT");
// Configuration du bluetooth
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
BTSerie.begin(9600); //57600
delay(500);
BTSerie.print("AT+VERSION"); //Demande le N° de version
delay(1000);
// BTSerie.print("\n");
}
void loop()
{
char recvChar;
//On lit caractere par caractere sur le BTSerie et on affiche sur le Terminal Serie
if (BTSerie.available()) {
recvChar = BTSerie.read();
Serial.println(recvChar);
}
if (Serial.available()) {
recvChar = Serial.read();
BTSerie.write(recvChar);
}
}