[RESOLU] Probleme lecture des données HC-05

Bonjour tout le monde,

Depuis quelques jours j'ai acheté un module bluetooth HC-05 , et dans un premier temps j'ai voulu faire une petite application qui permet de commander une LED, au début j'ai commencé par le test de la communication sans et avec les commandes AT ( ce qui n’était pas facile du tout).

par la suite j'ai fait le développement de l'application sous App Inventor et j'ai mit en place mon code qui me permet de récupérer les données envoyées par l'application et commander la LED.

Mon soucis est quand j'envoie une valeur (un octet) à partir de l'application par exemple "1" pour allumer la LED,mon arduino lit la valeur "120" et "0" respectivement.

Alors déjà je comprend pas pourquoi il me renvoie deux valeur sachant que j'ai une seul println ? et aussi comment ça peut qu'il arrive pas à lire la bonne valeur ou bien y a t il un décalage de bits ?

est ce qu'il y a quelqu'un d'entre vous qui a eu ce problème déjà ?

Je vous remercie d'avance pour vos réponses

bonne journée

void loop()
{


  if (BT.available()){    
    
    Data=BT.read(); // le data est déclaré comme byte 
    Serial.println(Data);
   
  }

  if (Serial.available())
  BT.write(Serial.read());
    
}

dellkarim:
...

Alors déjà je comprend pas pourquoi il me renvoie deux valeur sachant que j'ai une seul println ? et aussi comment ça peut qu'il arrive pas à lire la bonne valeur ou bien y a t il un décalage de bits ?
bonne journée

Bonjour
serial.println envoi data suivi par les terminateurs standards
il fuat utiliser serial.print

Merci Artouste pour ton retour

mais meme en utilisant un print en lieu de println , ça change rien

et si tu mets Serial.write(Data)

si je met Serial.write je lis des caractères spéciaux

ton software serial est à,la bonne vitesse par rapport a ton hc05 ?

oui tjr en 9600 , voila la totalité du programme

#include <SoftwareSerial.h>
#define bt_power 7
#define bt_key_power 8
#define indication_led 13

int Data; 

SoftwareSerial BT(A0, A1); // RX | TX

void setup()
{
  // set the pins to OUTPUT
  pinMode(bt_power, OUTPUT);  
  pinMode(bt_key_power, OUTPUT);
  pinMode(indication_led, OUTPUT);
  
  // set the pins to LOW
  digitalWrite(bt_power, LOW);
  digitalWrite(bt_key_power, LOW);
  digitalWrite(indication_led, LOW);
  

  
 delay(100);
  
  // set the key pin to LOW to desactivate AT COmmands
  digitalWrite(bt_key_power, LOW);
  
  // small delay
  delay(100);
  
  // now power on the BT
  digitalWrite(bt_power, HIGH);
  
  // start our serial so we can send and recieve
  // information from the BT module
  Serial.begin(9600);
  // initiate the BT serial at 38400 which is the default 
  // speed at which the BT AT mode operates at
  BT.begin(38400);
  
  // self explanatory if we are using AT Commands
  Serial.write("For a list of commands, visit: \n");
  Serial.write("Type AT commands  \n\n");
  
  // process complete turn on led 13
  digitalWrite(indication_led, HIGH);
  
  // Send an "AT" command to the AT (without quotes)
  // if response is OK, then we are connected
  // and ready to program the BT module
 }

void loop()
{

  // listen for a response from the HC-05 and write it to the serial monitor
  if (BT.available()){    

    Data=BT.read();
    Serial.println(Data);

  }

  listen for user input and send it to the HC-05
  if (Serial.available())
  BT.write(Serial.read());
    
}

dellkarim:
oui tjr en 9600 , voila la totalité du programme

#include <SoftwareSerial.h>

...
SoftwareSerial BT(A0, A1); // RX | TX
...
void setup()
{
...
 
 BT.begin(38400);
....
}

non la il est en 38400 pour passer des cdes AT
je te conseil le tuto d'Eskimon

Merci bcp rjinc38

C vrai c'etait à cause de ça ,Merci