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());
}
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
#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());
}