Problème réception de donnée via bluetooth

Bonjour,

Je possède une carte Arduino Leonardo et un shield Bluetooth seeedstudio V2 et mon intention est de pouvoir commander les sorties de l'arduino grâce à mon PC via bluetooth.

Mon problème est que je n'arrive pas à réceptionner de données via BT avec ma carte arduino (serialBluetooth.available() toujours égal à 0, serialBluetooth.read() toujours égal à -1 ), mais par contre je n'ai aucun problème pour en envoyer vers le PC.

J'utilise Termite pour le terminal BT.

Voilà le code que j'utilise :

#include <SoftwareSerial.h> 

SoftwareSerial blueToothSerial(6,7);
 
 
//The following code is necessary to setup the bluetooth shield ------copy and paste----------------
void setupBlueToothConnection()
{
 blueToothSerial.begin(9600); //Set BluetoothBee BaudRate to default baud rate 9600
 blueToothSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode
 blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); //set the bluetooth name as "SeeedBTSlave"
 blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me
 blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here
 delay(2000); // This delay is required.
 blueToothSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable
 Serial.println("The slave bluetooth is inquirable!");
 delay(2000); // This delay is required.
 blueToothSerial.flush();
}
 
 
/*----------------------SETUP----------------------------*/
void setup() {
 Serial.begin(9600); // Allow Serial communication via USB cable to computer (if required)
 pinMode(6, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6
 pinMode(7, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7
 setupBlueToothConnection(); //Used to initialise the Bluetooth shield
}
 
/*----------------------LOOP----------------------------*/
void loop()
{
    blueToothSerial.println(blueToothSerial.available(),DEC);
    delay(500);
}

Voilà, donc si vous avez une piste ça m'aiderai beaucoup :slight_smile:

Bonjour pour que ton arduino reçoive les commandes je pense qu'il te faudrait quelque chose de cette sorte:

{
char recvChar;
while(1)
{
recvChar = blueToothSerial.read();
}
}

avec des "if" pour faire des conditions d'activation de telle ou telle sortie en fonction de ce qui est reçu.
par exemple:

if (recvChar == '1'){c24();} //envoi vers la fonction c24 si 1 reçu
if (recvChar == '2'){c12rx1rx6();} //envoi vers la fonction c12rx1rx6 si 2 reçu
if (recvChar == '3'){c12rx1();} //envoi vers la fonction c12rx1 si 3 reçu

J'ai utilisé ça pour qu'une option de menu saisie sur un clavier connecté à un 1er arduino active une fonction differente dans le programme du 2e arduino, les 2 étant raccordés en Bluetooth.