Les modules HC05 et HC06

Que font ces modules ?

hc06.jpg

Ils permettent simplement de disposer d’une liaison Bluetooth sur un projet.
Il est vivement conseillé de les acheter déjà monté sur une plaque comme le montre l’image ci-dessus.

Comment les brancher ?

Si vous disposez d’un sensor shield v5.0, celui-ci possède une connectique spéciale pour ces composants !

Il y a 6 pattes dont 4 uniquement sont utilisées couramment. Dans l’ordre :
– KEY : non utilisé (sauf configuration du HC05).
– VCC : alimentation en 5V du Arduino.
– GND : à relier au GND du arduino.
– TXD : à relier au RX du arduino (oui oui !!!). Le signal émis vers arduino est de 0 ou 3.3V mais cela suffit.
– RXD : à relier au TX du arduino, mais part le biais d’un diviseur de tension. En effet, la tension d’entrée acceptée est de 0 ou de 3.3V, alors que le TX du arduino émet du 0 ou du 5V !
– STATE : non utilisé.

Pour le diviseur de tensions, on pourra utiliser deux résistances :

diviseur2.png

Une autre solution sera d’utiliser un circuit intégré 74HC4050 (ou autre de type 4050). On alimente la patte VCC de ce circuit en 3.3V du arduino.
– Les entrées qui arrivent en 0V donneront des sorties en 0V.
– Les entrées qui arrivent en 5V donneront des sorties en 3.3V.

4050.jpg

Comment les utiliser ?

Une seule précaution : lors des téléchargements des sketch, mieux vaut déconnecter TX et RX pour ne pas créer de conflit avec la liaison série.

Ensuite, c’est très simple puisque les commandes sont celles de la liaison série !

Le nom par défaut ressemble à HC05 ou HC06 et le mot de passe par défaut est 1234.

Comment les configurer ?

Si vous voulez changer par exemple leur nom ou leur mot de passe, c’est possible.

Pour le module HC05, lire cet article fait par le concepteur des applications Sensoduino et Ardudroid.

Pour le module HC06, c’est plus simple car le branchement est le même que celui décrit précédemment.

Avant toute chose, télécharger le programme suivant dans lequel vous devrez choisir le nom du module, le mot de passe et la vitesse.

char NOMBRE[10]  = "MYMODULE";    
char BPS         = '4';           // 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char PASS[10]    = "1234";        
 
void setup()
{
    Serial.begin(9600);
    pinMode(13,OUTPUT);
    digitalWrite(13,HIGH);
    delay(10000);
    digitalWrite(13,LOW);
    
    Serial.print("AT"); 
    delay(1000);
 
    Serial.print("AT+NAME"); 
    Serial.print(NOMBRE);
    delay(1000);
 
    Serial.print("AT+BAUD"); 
    Serial.print(BPS); 
    delay(1000);
 
    Serial.print("AT+PIN");
    Serial.print(PASS); 
    delay(1000);    
}
 
void loop()
{
    digitalWrite(13, !digitalRead(13));
    delay(500);
}

Il ne reste plus qu’à mettre en route le module et d’attendre quelques secondes que la led 13 clignote !

Pour les hispanisants, voici une bonne vidéo ou l’article associé.