Problemi di ricezione hc-05

Salve a tutti, sono nuovo di questo forum e ho cominciato da un po a usare arduino.
Ho una arduino mega2560 e volevo provare ad interfacciarmi con il bluetooth per poi in futuro comandare alcuni motori passo passo. Tempo fa ho comprato una scheda bluetooth HC-05 e l'ho connessa in questo modo leggendo su vari siti:

rxd hc05 > txd0 arduino
txd hc05 > rxd0 arduino
5v hc05 > 5v arduino
gnd hc05 > gnd arduino

Ho provato a inserire uno sketch di prova e mi sono connesso con un dispositivo android (app BTinterface) per controllare se riceve e invia correttamente ma non ho ottenuto grandi risultati. Lo sketch è il seguente:

#include <SoftwareSerial.h>
#define RxD 0
#define TxD 1
char numero;

void setup() {
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
}

void loop() {
Serial.println("Premi o 0 o 1");
while (!Serial.available());
numero = Serial.read();
if( numero == '0' ) Serial.println("Press 0");
if( numero == '1' ) Serial.println("Press 1");
delay(50);
}

Mi riesco a connettere senza problemi e ricevo tutto quello che invia sul monitor seriale ma non riesco a inviare niente.
In pratica riesco a leggere la scritta "Premi o 0 o 1" ma non mi rinvia "Press 0" o "Press 1" se invio i 2 segnali cosa può essere?
Ho provato mille sketch e tutte le combinazioni possibili di connessioni e programmi ma non ho nessun risultato, ricevo solo!
Se invio i dati da usb funziona e ricevo i dati sul tablet ma se invio dal tablet non succede nulla. Ho provato anche a connettere assieme i tx e rx del bluetooth e facendo cosi il dato che invio mi ritorna immediatamente indietro quindi penso che la scheda non sia rotta.
Spero di essere stato abbastanza chiaro e mi affido a voi che sarete più esperti di me.
Grazie mille.

Non è che per caso anzichè inviare '0' o '1' (come caratteri) invii 0 e 1 come valore numerico? prova a modificare lo sketch, in particolare modifica queste righe

  if( numero == '0' ) Serial.println("Press 0"); 
  if( numero == '1' ) Serial.println("Press 1");

e scrivi cosi:

  if( numero == '0' || numero == 0) Serial.println("Press 0"); 
  if( numero == '1' || numero == 1) Serial.println("Press 1");

in modo che vengano accettati sia 0 e 1 come caratteri che come numeri...

NO, il problema credo sia un altro, il modulo HC-05 non funziona sulla seriale standard (quella che è collegata anche alla USB) ... se ne è parlato varie volte sul forum ...

Su una UNO occorre usare SoftwareSerial, ma dato che tu sei su una Mega2560 che ha più porte seriali, collegalo ad un altra porta e riprova :wink:

Guglielmo

Risolto tutto grazie Guglielmo!!Ho cambiato la seriale e ora riesco a dialogare con il bluetooth senza problemi.
Grazie ancora a tutti.