Bonjour, j'essaie depuis quelques temps de renommer mon module Bluetooth HC06. Hier j'ai regardé quelques programmes du net qui permettaient de changer le baudrate du HC06... Résultat j'ai bien tapé AT+NAMETen'Bot (c'est Ten'Bot le nom que je veux lui attribuer) sauf que je reçois juste un petit carré dans le serial... mais le nom du module a bel et bien changé. Je ne sais pas s'il faut que je vous joigne quoi que ce soit, n'hesitez pas a demander.
A l'avenir j'aimerai aussi changer le pin avec AT+PIN mais ca ne marche pas (rien dans le serial)
Je me rappelle être passé par là, avec mon module HC06 et j'ai pu le configurer sans problème avec un petit script que voici (Assure toi d'être hors connexion pour le paramétrer):
/*Configuration
Arduino HC06
Tx1 <- Rx
Rx0 -> Tx
*/
#include <SoftwareSerial.h>
// (Tx, Rx)
SoftwareSerial hc06(2, 3);
void setup() {
//Initialize Serial Monitor
Serial.begin(9600);
Serial.println("ENTER AT Commands:");
//Initialize Bluetooth Serial Port
hc06.begin(9600);
}
void loop() {
//Write data from HC06 to Serial Monitor
if (hc06.available()) {
Serial.write(hc06.read());
}
//Write from Serial Monitor to HC06
if (Serial.available()) {
hc06.write(Serial.read());
}
}
Ensuite, il faut utiliser les commandes AT nécessaires.
Si le problème, peut être utilisé une autre carte Arduino pour le paramétrer.
Merci pour ta réponse @mathieu1 ! J'essaie ça de suite ! Malheureusement je n'ai pas d'autres cartes pour essayer donc je croise les doigts pour que ça marche
ça m'étonnerait ça sert juste à allumer ou éteindre la LED en fonction de si on reçoit un 0 ou un 1
sur une MEGA, ne pas prendre SoftwareSerial, vous avez 4 UARTs matérielles, autant les utiliser
Connectez le hc06 sur les pins 18 et 19 de la MEGA (le Tx du module vers le Rx1 et le Rx du module vers le Tx1) et joindre les GND + alimentation adaptée pour votre module.
le code typique:
#define hc06 Serial1
void setup() {
Serial.begin(115200);
hc06.begin(9600);
}
void loop() {
if (Serial.available()) hc06.write(Serial.read());
if (hc06.available()) Serial.write(Serial.read());
}
Avec cela vous ouvrez le moniteur série à 115200 bauds avec comme fin de ligne CR et LF et tout ce que vous tapez dans le moniteur série va être envoyé vers le HC-06 et tout ce qui provient du HC-06 sera affiché.
Pour tester, tapez une commande connue suivie de return dans le moniteur et vous devriez voir une réponse.
les commandes que vous pouvez essayer
Commande AT
Description
ATreturn
vérifier la connexion, réponse OK
AT+NAMEzzzzreturn
Changer le nom en zzzz. Pas d'espace entre le nom et la commande.
AT+BAUDxreturn
changer le débit en bauds, x est le code du débit, pas d'espace entre la commande et le code.
AT+PINxxxxreturn
changer le code PIN, xxxx est le code PIN, pas d'espace.
AT+VERSIONreturn
afficher les infos de version du firmware
pour les débits vous faites AT+BAUDxreturn
x
Vitesse
1
1200bps
2
2400bps
3
4800bps
4
9600bps (défaut)
5
19200bps
6
38400bps
7
57600bps
8
115200bps
mais attention, si vous changez le débit, le code arduino ne fonctionne plus car il attend 9600 bauds.
c'est plus robuste que SoftwareSerial et ça ne met pas à genoux le système d'interruptions de votre MEGA (ce qui crée des soucis si vous recevez beaucoup de messages et que vous avez d'autres usages comme la gestion de bandeaux de leds etc)
est-ce que la commande AT répond OK ? Que dit AT+VERSION ?
Ca ne répond rien, le serial reste vide (toujours avec NL et CR et sous 115200 bauds)
Je ne comprends pas j'ai même essayé d'inverser les pins 18 et 19 toujours rien.
postez une photo de votre module et décrivez les connexions à votre MEGA.
Vous êtes sûr qu'il faut l'alimenter en 3.3V ?
ah - un point important : si le HC-06 est appairé alors il sort du mode commandes AT. Il ne faut pas qu'il soit connecté à un autre module maître pour pouvoir recevoir des commandes AT.
Il semble y avoir des tas de trucs branchés sur votre MEGA - débranchez pour le moment le PCB vert qui est au dessus et branchez directement dans votre MEGA avec rien d'autre de connecté.
Vérifiez aussi que les fils sont "bons" - ces petits fils peuvent se casser à l'intérieur et ça ne se voit pas.
Je ne comprends pas pourquoi cela ne marche pas, mon programme marche sans problème quand j'envoie les informations de commande par le biais du BT en me servant de l'application Appinventor...
EN doit être mis sur 3v3 sur le module pour le faire entrer en mode programmation (comme un Boot sur STM32) par ailleurs, il n'y a pas besoin d'une carte de développement entre les deux, simplement d'un module UART ou FTDI. les codes postés ici permettent juste d'utiliser le UART présent sur la carte de dev utilisée. c'est bien mais plus chiant a mettre en place.
la liaison USB est un type de communication. les équipements comprennent, eux, en langage Serie, UART, qui est un autre type de communication. il faut donc quelque chose entre deux pour faire la conversion