Bonjour, vous allez bien ?
Pour un projet, j'ai eu besoin que deux Arduino puissent communiquer sans fils en Bluetooth et donc j'ai acheté deux modules HM10 BLE.
Je les ai configuré à l'aide des commandes AT (nom, mode, connection, ...) et j'ai réussi a les connecter entre eux grâce à leur adresse Bluetooth. J'ai su que je les avais connecté avec le clignotement de la led que s'est stopé sur les deux.
Après, j'ai cherché sur internet comment envoyer et recevoir et j'ai integré des lignes de code très simple à mon programme pour voir si ça marchait.
SoftwareSerial emetteur(...)
emetteur.begin(9600);
emetteur.println(message)
if (recepteur.available() > 0)
{Serial.println(recepteur.read());}
else
{Serial.println("Rien reçu :( ");}
Malheureusement je ne reçois rien du tout.
Pour la partie hardware, j'ai fais exactement come ça :
Bon voila, si vous pouvez m'aider ce serait formidable sinon bah c'est pas grave.
Merci d'avance !
Cdt Chataigne
J-M-L
May 18, 2024, 8:25am
2
expliquez un peu mieux vos pins, vos ...
ne sont pas une info anodine dans
Alors sur la télécommande, la pin TX du HM10 est reliée à la pin 9 et RX à la pin 8.
Sur le robot, la pin TX est reliée à la pin 7 et RX à la pin 8.
Je ne comprends pas, tout le monde se contredit : il faut mettre un divisieur de tension sur RXD ou TXD ou tout simplement ne pas en mettre ? Faut-il alimenter le HM-10 en 3.3V ou en 5V ?
J-M-L
May 18, 2024, 9:42am
6
si le HM10 BLE est en 3.3V ça veut dire que ses pins ne peuvent recevoir ou émettre que 3.3V
la pin Tx du HM10 envoie de l'information - donc c'est de l'autre cĂ´tĂ© qu'il faut pouvoir recevoir 3.3V. Un arduino 5V voit 3.3V comme un HIGH donc il n'y a pas de souci de ce cĂ´tĂ© lĂ
la pin Rx du HM10 attend du 3.3V mais l'arduino va balancer 5V âžś c'est donc sur cette pin qu'il faut faire l'adaptation de tension.
votre shchéma de câblage montre les pins 2 et 3...
si vous faites
SoftwareSerial emetteur(2, 3); // Rx, Tx
alors la pin Rx de votre port série virtuel emetteur
est la pin 2 et la pin Tx est la pin 3 de votre arduino.
Vous devez donc connecter la pin 2 (Rx Arduino) Ă la pin Tx du HM-10 et la pin 3 (Tx de l'arduino) Ă la pin Rx du HM10 en passant par le pont diviseur
si vous voulez utiliser les pins 8 et 9 il faut juste adapter le câblage et connecter les bonnes pins entre elles (le Tx arduino au Rx HM10 en passant par le pont diviseur et le Rx arduino au Tx HM-10)
pour les posts futurs, lisez et mettez en application les recommandations listées dans "Les bonnes pratiques du Forum Francophone”
On gagnera du temps si vous postez tout le code et les schémas exacts
Oui d'accord, mais ce n'est marqué nul part que c'est en 3.3V. Même sur le site où je les ai acheté c'était marqué 5V.
J-M-L:
la pin Tx du HM10 envoie de l'information - donc c'est de l'autre cĂ´tĂ© qu'il faut pouvoir recevoir 3.3V. Un arduino 5V voit 3.3V comme un HIGH donc il n'y a pas de souci de ce cĂ´tĂ© lĂ
la pin Rx du HM10 attend du 3.3V mais l'arduino va balancer 5V âžś c'est donc sur cette pin qu'il faut faire l'adaptation de tension.
Ok merci pour l'explication : simple et efficace
J-M-L
May 18, 2024, 9:48am
9
si votre HM-10 est monté sur une carte qui gère le 5V pour les pins d'entrées alors pas besoin d'adaptation... ça dépend des modules. Le composant sous jacent (CC2540 ou CC2541) est en 3.3V. ça dépend donc de ce que fait la carte.
Oui bien sur,
En tout cas merci beaucoup. Je vous notiferai si cela marche ou pas.
al1fch
May 18, 2024, 9:49am
11
Bonjour
on trouve sur le marché des module 'HM-10" divers (HM-10 proprement dit + quelques composants ajoutés)
certains (nombreux) comportent leur régulateur 3,3V on peut les alimenter en 5V
certains (rares) comportent une adaptation de niveau logique : ils acceptent 5V sur leur entrée RX
en général: alim 5V et pont diviseur pour protéger RX d'une seurtension
Voici ce qui est marqué sur le site du vendeur (gotronic.fr ) :
Je ne comprends plus rien. Si on met un pont diviseur sur la pin TX alors que le niveau logique est de 5V cela marchera-t-il ??
J-M-L
May 18, 2024, 9:59am
13
le schéma montre qu'il n'y a pas besoin de pont diviseur (ils utilisent les pins 0 et 1 ce qui n'est pas terrible sur UNO car vous perdez la liaison Serial pour le debug)
soyez précis, le Tx de qui ?
vous avez lu mon explication
J-M-L:
la pin Tx du HM10 envoie de l'information - donc c'est de l'autre cĂ´tĂ© qu'il faut pouvoir recevoir 3.3V (en supposant qu'il Ă©mette 3.3V). Un arduino 5V voit 3.3V comme un HIGH donc il n'y a pas de souci de ce cĂ´tĂ© lĂ
la pin Rx du HM10 attend du 3.3V mais l'arduino va balancer 5V âžś c'est donc sur cette pin qu'il faut faire l'adaptation de tension.
si c'est pas clair, je peux reformuler
LA pin TXD soit la pin le pin du HM10.
Si je comprends mais donc qu'est ce qu'on peut conclure ? Pont diviseur ou pas ? Mon modèle est adapté en 5V ?
al1fch
May 18, 2024, 10:13am
15
pour répondre avec certitude il faudrait savoir ce qui , sur le petit circuit imprimé , a été ajouté au module radio HM-10, entouré en bleu sur ma photo
Gotronic dispose peut être du schéma complet
L'embrouile vient du fait que le petit circuit imprimé (break board) est vendu sous le même nom que le module radio BLE qu'il utilise
Ce qui est sur et certain c'est que le module radio (soudé sur le petit circuit imprimé) s'alimente sous 3,3V et ne supporte pas 5V sur ses entrées dont RX
J-M-L
May 18, 2024, 10:20am
16
Gotronic montre un schéma sans pont diviseur, on peut penser qu'il font donc l'adaptation dans le module.
al1fch
May 18, 2024, 10:27am
17
Avec un HM-10 vendu par je Gotronic je suivrait leur indication de câblage en pensant que le pont diviseur est présent sur le 'break-out'
.
le terme HM-10 couvre une certaine diversité de produits , tant pour le firmware (jeux de commandes AT) que pour le matériel.
Ok, bon je comprends mieux maintenant. En tout cas, merci enormément d'avoir attaché de l'attention à mon problême.
Cela ne marche pas.... Je viens de finir les soudures (donc en faisant un pont sur RXD) et je ne reçois toujours rien.
J-M-L
May 19, 2024, 8:28am
20
s'il y a un pont diviseur sur la carte vous avez 2 ponts...
J-M-L
May 19, 2024, 8:57am
22
C'est possible : le premier pont va transformer 5V en 3.3V et le second pont va transformer ces 3.3V en 2.178V puisque son role c'est de diviser la tension
La question sera donc de savoir si ces 2.178V seront vus comme un HIGH par un composant qui attend ~3.3V pour un HIGH
En logique CMOS 3.3V, un HIGH est validé typiquement si la tension est supérieure à une certaine référence. Certains sont à 2.0V donc ça irait quand même mais parfois c'est 0.7 * VDD (0.7 x 3.3 = 2.31V) et là on tombe dans la zone grise.