Problema collegamento Arduino-Android Bluetooth

Salve a tutti, avrei dei problemi con il collegamento seriale bluetooth fra Android ed Arduino(con modulo HC-06). Il modulo è connesso ai pin 0 e 1, rispettivamente l' RXD con il TX ed il TXD con l'RX di Arduino. Ho usato varie app su android fra le quali: -BTInterface -SENA BTerm -Bluetooth SPP -ed altre... Tutte mi segnalano la connessione riuscita e anche i led del modulo BT smettono di lampeggiare al collegamento effettuato, ma ogni volta che invio un comando Arduino non reagisce in alcun modo. Ecco qui il codice che sto utilizzando:

char val;
const int ledPin = 13;

void setup()
{
  pinMode(ledPin, OUTPUT);
}

void loop()
 {
 if( Serial.available() ) 
  {
     val = Serial.read(); 
  }
   if( val == 'H' ) 
  {
    digitalWrite(ledpin, HIGH); 
  } 
  else if( val == 'L' ) 
  { 
    digitalWrite(ledpin, LOW); 
  }
  delay(100); 
}

Mi servirebbe davvero moltissimo un'aiuto per capire dove sto sbagliando... Grazie in anticipo.

Come già discusso più volte in altri thread, purtroppo ... questi moduli Bluetooth NON si possono collegare ai pin 0 e 1 di Arduino UNO, ma occorre creare una seriale virtuale con la SoftwareSerial , ad esempio sui pin 10 e 11, e collegare il modulo su di essa.

Prova e ... vedrai che va ;)

Guglielmo

P.S. : In questo modo la vera seriale rimarrà libera e la potrai usare, con il Monitor di Arduino IDE, per il debug ;)

Grazie mille per la tempestiva risposta, ma ho ancora scarsa competenza in Arduino ed avrei delle domande se possibile:
Usando come codice l’esempio:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11);

void setup()  
{
 Serial.begin(57600);
  while (!Serial) {
    ; // il mio è un Arduino LEONARDO
  }


  Serial.println("Goodnight moon!");

  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

-Nel monitor di arduino IDE mi risulta solo la scritta “Goodnight moon!” e nient’altro e nessun segno del collegamento con il dispositivo Android, cosa ho omesso?

-Non ho ben chiaro come distinguere quale sia il corretto numero della velocità di connessione della porta seriale bluetooth(4800,9600,57600), come funziona?

-A livello informativo, come mai questi moduli BT non funzionano se collegati ai pin 0 ed 1 di Arduino(nel mio caso LEONARDO)?

Grazie in anticipo, e mi scusi per l’insistenza!

Allora, normalmente quei moduli arrivano programmati per lavorare con una velocità di 9600 baud (… indica quanti bit al secondo il modulo trasmette), quindi … la SoftwareSerial andrà aperta a 9600 baud :

mySerial.begin(9600);

Poi … devi collegare il Pin TX del HC-06 al Pin che hai definito RX su Arduino (mi pare tu stia usando il 10) ed il Pin RX del HC-06 al pin che hai definito di TX su Arduino (e mi sembra tu stia usando il pin 11) quindi :

TX HC-06 —> RX Arduino
RX HC-06 <— TX Arduino

Programmino veloce veloce (… ma ampiamente collaudato :wink:) per provare il tutto :

#include <SoftwareSerial.h>

#define  BT_RX 10            // PIN to receive from bluetooth
#define  BT_TX 11            // PIN TO transmit to bluetooth

SoftwareSerial btSerial(BT_RX, BT_TX);

void setup()
{
  delay (2000);
  //
  Serial.begin(9600);        // Initialize USB Serial port
  //
  btSerial.begin(9600);    // Initialize Bluetooth SoftwareSerial port for selected data speed
  //
  Serial.println("--- Ports ready ---");
  Serial.println("");
  //
}

void loop()
{
  if (btSerial.available() > 0) Serial.write(btSerial.read());
  if (Serial.available() > 0) btSerial.write(Serial.read());
}

Vedi se funziona :slight_smile:

Guglielmo

P.S. : Per quanto riguarda la tua domanda … l’idea che mi sono fatto sul mancato funzionamento e … che è un problema di livelli e di conflitti … quel modulo ha il valore HIGH a 3.3v … Arduino lavora a 5v e su quei due pin c’è collegata anche la USB → Seriale … :roll_eyes:
Vd. dettagli per la Leonardo, sezione “Communication”, QUI

Perfetto, la ringrazio tantissimo, tutto funziona al meglio! Ora posso finalmente continuare col mio progetto! Ancora grazie mille, a presto

Benone ! Allora buona continuazione ... ;)

Guglielmo