HC-05: RX-TX LEVEL 3.3v: résistance?

Bonjour
Je regarde depuis une heure ou presque comment installer le module HC05 (bluetouffe) sur une nano ou une uno. Je pense que c'est pareil, et ma Uno est sur le robot qui se promène dans le salon. :stuck_out_tongue:
Ce que je vois sur mon module, c'est que RX et TX sont indiqués en 3,3v.

Question:
Dois-je y mettre une résistance? Une carte uno ou nano délivre du 5v, non? Ou alors les pins RX et TX sont-ils protégés?

Je pose la question car j'ai vu un seul montage avec des résistances, pas les autres, du coup j'ai un gros doute. j'attends vos avis avant de connecter quoique ce soit :grinning:

Merci :wink:

Les infos sont rares, les tutos n'en parlent pas, mais j'ai trouvé un schéma.

5v Pro mini 3.3v serial
GND ---------------- GND
RX ------------------ Tx
Tx ---1K8----3K3-- GND
|
--------- Rx

J'essaie ça

J'ai suivi le tuto qui est ici

Je ne vois pas de com8, mais com6 et com7.

Le module uc clignote très lentement, mais le moniteur série ne me renvoie rien.

//code write by Moz for YouTube changel LogMaker360, 27-10-2015
//code belongs to this video: https://www.youtube.com/watch?v=6jZMJ7DFCY0

#include <SoftwareSerial.h>
SoftwareSerial BT(1, 0); 
// creates a "virtual" serial port/UART
// connect BT module TX to 0
// connect BT module RX to 1
// connect BT Vcc to 5V, GND to GND
void setup()  
{
  // set digital pin to control as an output
  pinMode(13, OUTPUT);
  // set the data rate for the SoftwareSerial port
  BT.begin(9600);
  // Send test message to other device
  BT.println("Hello from Arduino");
}
char a; // stores incoming character from other device
void loop() 
{
  if (BT.available())
  // if text arrived in from BT serial...
  {
    a=(BT.read());
    if (a=='1')
    {
      digitalWrite(13, HIGH);
      BT.println(" LED on");
    }
    if (a=='2')
    {
      digitalWrite(13, LOW);
      BT.println(" LED off");
    }
    if (a=='?')
    {
      BT.println("Send '1' to turn LED on");
      BT.println("Send '2' to turn LED on");
    }   
    // you can add more "if" statements with other characters to add more commands
  }
}

Windows 10 étant très mal foutu, j'espère que ça ne vient pas de lui...

Sur le HC05 j'ai une broche ENABLE et personne n'en parle, faut-il l'alimenter directement en 5v ?

Tu confonds HC-SR05 (ultrasons) et HC 05 (Bluetooth). En effet, le module BT doit être alimenté en 5V mais la pin RX ne supporte pas le 5V, d'où l'installation d'un pont diviseur de tension :

Les commandes AT sont ici: http://www.electronicaestudio.com/docs/istd016A.pdf, ça te permet de changer le débit (par défaut 9600 bauds, mais fonctionne très bien à 115200) et le pincode (par défaut : 1234)

Salut

C'est un peu le problème avec ces modules intégrant un régulateur 3.3V, comme les détecteurs de mouvement HC-SR501. Tu les alimentes en 5V ou plus et tu leur causes en 3.3V parce que toute l'électronique du module fonctionne en 3.3V.

Je n'aime pas du tout.

En général je vire le régulateur, je les alimente en 3.3V et je leur parle en 3.3V.
Par contre j'utilise de l'ARDUINO PRO MINI, pas UNO ni NANO.

comment installer le module HC05 (ultrasons)

ultrasons : petite erreur ...

@+

En effet, j'ai l'esprit confus, hier je regardais des trucs sur les ultrasons.... Le café ne fait plus effet.

J'installe bien un module BLUETOOTH, j'ai réalisé le même montage que celui proposé par notre cher koala.

J'ai une broche ENABLE sur le module qui n'est raccordée à rien sur l'arduino. Faut-il lui envoyer du 5v ? Ca me parait logique mais toujours peur de tout cramer...

Ensuite, dans la vidéo le type se met en COM8. Chez moi, je peux choisir COM6 ou COM7 depuis IDE...

Du coup, je ne reçois pas le message envoyé par arduino à mon pc, et je ne peux pas allumer la led à distance...

Laisse la broche EN en l'air.
Pourquoi tu utilises les pins 0 et 1 qui sont peut-être aussi pour la liaison série avec le PC ? Si tu utilises SoftwareSerial c'est justement pour laisser tranquille le port du PC...

C'est ce qui est dit dans les tutos,
et dans le code

#include <SoftwareSerial.h>
SoftwareSerial BT(1, 0);
// creates a "virtual" serial port/UART
// connect BT module TX to 0
// connect BT module RX to 1

Et pour être honnête j'ai plus vraiment de place à part ceux-là que j'ai gardé exprès pour installer le bluetooth.

Pour info, windows me dit que le module et le pc sont appairés. En effet le clignotement du module est très lent, il ne clignote pas aussi vite que lorsqu'il n'est pas appairé.

kammo:
C'est ce qui est dit dans les tutos,
arduino module
TX -> RX
RX -> TX

Oui, mais SoftwareSerial te permet de créer un nouveau port série, que tu définis comme ceci :
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);et tu choisis toi-même les pins Rx et Tx que tu veux utiliser.

Attention :

Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

par exemple

SoftwareSerial mySerial =  SoftwareSerial(8,9);

Si tu es joueur, il y a une nouvelle version : NewSoftSerial (pas testée de mon côté).

lesept:
Oui, mais SoftwareSerial te permet de créer un nouveau port série, que tu définis comme ceci :
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin);et tu choisis toi-même les pins Rx et Tx que tu veux utiliser.

Attention :par exemple

SoftwareSerial mySerial =  SoftwareSerial(8,9);

Si tu es joueur, il y a une nouvelle version : NewSoftSerial (pas testée de mon côté).

Ah ok, bien
Toujours difficile d'utiliser une bibliothèque qu'on ne connaît pas.
Pour la nouvelle version on va attendre, je vais déjà essayer avec ça...
Le problème demeure que j'ai plus beaucoup de place et que les pins 0 et 1 m'ont souvent donné du fil à retordre, je n'ose plus rien y mettre...
En quoi c'est gênant? Le but, c'est de balancer le code dans la machine via le pc, comme d'hab en usb, et ensuite de jouer avec une variable via le bluetooth.

Et cette histoire de COM8 alors? Ca a rapport avec quoi?. Là, rien ne communique ...

Je ne sais pas pour le COM8, je n'ai pas regardé la vidéo... Je pense que si tu libères les pins 0 et 1, l'Arduino communiquera avec le PC sur le port que tu auras choisi dans l'IDE.

ok j'essaie ça après mes merguez :wink:
à toute et merci

Toujours rien.
De plus, le moniteur série fait planter le PC, je l'ai déjà redémarré trois fois...
Encore un tuto à la con

kammo:
De plus, le moniteur série fait planter le PC, je l'ai déjà redémarré trois fois...

Tu dois avoir un court-jus quelque part : vérifie tes branchements...

Ça m'étonne quand même que ça ne fonctionne pas, j'ai trouvé un autre code, tu peux tester :

#include <SoftwareSerial.h>// import the serial library

SoftwareSerial BT(10, 11); // RX, TX
int ledpin = 13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer

void setup() {
  BT.begin(9600);
  BT.println("Bluetooth On please press 1 or 0 blink LED ..");
  pinMode(ledpin, OUTPUT);
}

void loop() {
  if (BT.available()) {
    BluetoothData = BT.read();
    if (BluetoothData == '1') { // if number 1 pressed ....
      digitalWrite(ledpin, 1);
      BT.println("LED  On D13 ON ! ");
    }
    if (BluetoothData == '0') { // if number 0 pressed ....
      digitalWrite(ledpin, 0);
      BT.println("LED  On D13 Off ! ");
    }
  }
  delay(100);// prepare for next data ...
}

Il faut choisir les pins RX et TX (ici 10 et 11) dans celles qui marchent (ça dépend de ton Arduino) :

The Arduino hardware has built-in support for serial communication on pins 0 and 1 (which also goes to the computer via the USB connection). The native serial support happens via a piece of hardware (built into the chip) called a UART. This hardware allows the Atmega chip to receive serial communication even while working on other tasks, as long as there room in the 64 byte serial buffer.

The SoftwareSerial library has been developed to allow serial communication on other digital pins of the Arduino, using software to replicate the functionality (hence the name "SoftwareSerial"). It is possible to have multiple software serial ports with speeds up to 115200 bps. A parameter enables inverted signaling for devices which require that protocol.

Limitations

If using multiple software serial ports, only one can receive data at a time.
Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
On Arduino or Genuino 101 the current maximum RX speed is 57600bps
On Arduino or Genuino 101 RX doesn't work on Pin 13

Sinon, il y a encore les fondamentaux :

Ici, la liste des commandes AT, ça peut servir.

En effet, malgré un dessin brouillon, le tuto d'Anne-Laure est clair.
Cependant, je n'ai rien compris sur le moniteur série.

J'ai bien reçu une fois le message mais j'étais en USB ... donc c'est de la triche.
Je ne vois rien sur le port COM à choisir, moi j'ai le choix entre 6 et 7. Dès que j'essaie de taper AT, IDE plante, je dois rebooter le pc... pratique...

Comment configurer le port COM?

Je suis en 57600 Bauds, j'ai choisi "les deux NL et CL"

Je ne vois pas HC05 sur mon téléphone.
Le module clignote lentement, deux secondes environ.
Windows me dit qu'il est couplé au HC05.

Je suis vraiment débile?

Eskimon
Juste une chose : branchez la broche "Key" à la masse pour que le module soit en mode "communication" et non pas en mode commande.

Anne-Laure
Le HC-05 a 6 pattes au lieu de 4, avec en plus STATE, que l’on n’utilise pas, et EN ou KEY, que l’on connecte à la sortie 3.3V de l’arduino.

Est-ce qu'il existe un tuto qui marche?
Un code qui marche avec un montage qui soit pas dessiné par un gosse de 3 ans?

Erreur d'ouverture du port série « COM6 ». (Port busy)
Erreur d'ouverture du port série « COM7 ». (Port not found)

RIEN NE MARCHE

Je suis bien conscient que je ne suis pas en pleine possession de mes moyens et que ma tête marche moins bien qu'elle ne devrait, mais j'espère quand-même ne pas être complètement con. Là, honnêtement, je commence à m'inquiéter.

Bon je crois qu'il faut que tu fasses comme les nouveaux. Indique précisément ta configuration, quel arduino, ton montage, et poste ton code. Qui discute avec ton HC05 : le même PC qui est connecté avec l'arduino ou un téléphone portable ?

On va y mettre les moyens, il faut sauver le soldat kammo !