Intanto come dico sempre, quando c'è un problema "andiamo per gradi". Significa per prima cosa che se il progetto è composto da più elementi (nel tuo caso Arduino, Bluetooth, e lo smartphone Android) va verificato il singolo elemento, altrimenti non si capisce dove possa essere il problema. Ad esempio il fatto che "non funziona": tu sai se è perché il dato non parte, o è chi deve riceverlo che non lo intercetta, o lo interpreta male?
Per cercare di capire cosa fa un programma, prima di tutto si deve verificare la sua logica di funzionamento. Al posto di bluetoothSerial inizia ad usare la normale Serial, e vedi su Monitor seriale cosa succede, ossia cosa dovrebbe ricevere il bluetooth:
//#include <SoftwareSerial.h>
#define RxD 6 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD)
#define TxD 7 // This is the pin that the Bluetooth (BT_RX) will receive from the Arduino (TxD)
#define BUTTON 8
//SoftwareSerial blueToothSerial(RxD, TxD);
char sendchar=0;
int data;
void setup() {
pinMode(RxD, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6
pinMode(TxD, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
// blueToothSerial.begin(9600);
Serial.begin(9600);
Serial.println("Start");
}
void loop() {
byte leggiBottone=digitalRead(BUTTON);
if (leggiBottone == 1)
{
// blueToothSerial.print(1);
Serial.print(1);
}
delay(100);
}
Provalo e fallo partire. Cosa vedi nel monitor seriale (impostalo a 9600 baud mi raccomando)?
Se vedi degli "1" quando premi e tieni premuto il pulsante allora ti funziona, e questo sarà ciò che mandi via Bluetooth (se devi mandare il dato solo quando premi il pulsante e non continuare a mandarlo, come immagino, è una modifica che vedremo dopo, sempre per il concetto "andiamo per gradi").
Poi per il secondo elemento, il bluetooth: quando hai fatto la prova, sei sicuro di aver fatto il pair (collegamento) tra HC-05 e il tuo telefono, vero? Immagino di si, ma quindi se la prima verifica è ok, poiché tu stai mandando il valore "1" come carattere (quindi un byte con codice decimale 49) e non come byte, la prossima domanda è: ma tu COSA devi mandare? Ovvero, COSA la controparte si aspetta di ricevere? Sei sicuro che gli vada bene il CARATTERE "1" e non un BYTE a 1?
Per finire, quindi, lo smartphone: parli di mandare dati ad uno smartphone, ma sullo smartphone quale programma hai caricato? Cosa fa? Cosa si aspetta? Lo hai scritto tu?
Una volta chiarite queste cose, allora possiamo vedere il resto.