Bonjour
Je souhaite établir une communication entre un Arduino Uno et un smartphone Android. La communication fonctionne dans un seul sens : je peux envoyer un caractère du smartphone vers l'Arduino mais pas l'inverse.
- module bluetooth grove il est connecté aux pins D2 RX et D3 TX
- sur le téléphone j'utilise Serial Bluetooth terminal
#include <SoftwareSerial.h>
#define RxD 2
#define TxD 3
#define PINLED 4
#define LEDON() digitalWrite(PINLED, HIGH)
#define LEDOFF() digitalWrite(PINLED, LOW)
#define DEBUG_ENABLED 1
const int pbt1 = 8; // bouton test
int bs1 = 0;
char recvChar;
SoftwareSerial blueToothSerial(RxD,TxD);
void setup()
{
Serial.begin(9600);
blueToothSerial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
pinMode(PINLED, OUTPUT);
pinMode(pbt1,INPUT); // bouton test
}
void loop()
{ bs1 = digitalRead(pbt1);
if (bs1 == 1){
Serial.println("string sent");
delay(100);
blueToothSerial.print("1234");
blueToothSerial.flush();
}
if(blueToothSerial.available())
{
recvChar = blueToothSerial.read();
Serial.println(recvChar);
if(recvChar == '1')
{
Serial.println("1 received");
digitalWrite(PINLED, HIGH)
}
else if(recvChar == '0')
{
Serial.println("0 received");
digitalWrite(PINLED, LOW)
}
}
delay(100);
}
La chaîne "string sent" apparaît dans le moniteur série. Donc le bouton fonctionne.
Mais la chaîne "1234" n'apparaît pas sur l'écran du terminal
La pin D3 de l'Arduino est bien connectée à la pin RX du module.
Si je connecte le module aux pins D6 et D7 de l'Arduino même problème.
Si je connecte le buzzer, le bouton, et le module BT sur un Arduino Mega sur les mêmes pins, c'est l'inverse qui se passe : je peux envoyer à partir du Mega mais pas à partir du smartphone. Le texte 1234 est bien affiché sur le terminal.
Quelqu'un aurait une idée sur ce qui coince ? Le problème vient fort probablement de ce qui se trouve entre la chaise et le clavier mais je ne vois pas.
Merci pour votre aide.