HC-06 messaggi via uart OK, messaggi via Bluetooth NotOKa

Ciao a tutti!

mi è sorto un problema alquanto bizzarro nell'ultimo progetto, lo descrivo brevemente:

Progetto realizzato su arduino pro mini 3.3V 8Mhz, accelerometro MPU6500 via I2C e bluetooth HC-06, senza stare a dilungarmi sui dettagli del progetto descrivo il problema sortomi, il quale temo riguardi l'hardware, spero possiate aiutarmi a comprenderlo meglio e magari sapreste aiutarmi a risolverlo.

Nel progetto ho una comunicazione bidirezionale>
-----arduino->HC-06->smartphone...
-----smartphone->HC-06->arduino...

il modulo è connesso all'alimentazione 3.3 ed anche la comunicazione seriale avviene sui 3.3V senza l'utilizzo di partitori o traslatori dato che l'arduino stesso è alimentato a 3.3V.

Il firmware funzionava, e quindi, sulla base di una sempliciassima macchina a stati gestivo i messaggi ricevuti dal bellissimo HC-06 per eseguire le operazioni associate, ad ogni comando ricevuto da arduino, esso inviava una conferma in risposta, osservabile quindi da smartphone...

Quello che mi succede invece ora è che i messaggi che invio all'HC-06 per mezzo di softwareserial all'HC-06 funzionano correttamente, e li ricevo sullo smartphone invece... i messaggi che gli impartisco via smartphone sono sbagliati ad esempio... invio: "T\r\n" e ricevo caratteri casuali, che variano anche se il comando inviato è sempre il medesimo... per intenderci li vedo come se fosse sbagliato il baudrate ma la cosa mi pare strana dal momento che in una delle due direzioni la comunicazione funziona correttamente...

Sapreste forse aiutarmi ad individuare il componente che potrebbe esserne la causa? o la causa anche senza componente? :slight_smile:

vi ringrazio molto... ciao!

Phoedus:
Il firmware funzionava, e quindi, sulla base di una sempliciassima macchina a stati gestivo i messaggi ricevuti dal bellissimo HC-06 per eseguire le operazioni associate, ad ogni comando ricevuto da arduino, esso inviava una conferma in risposta, osservabile quindi da smartphone...

Quello che mi succede invece ora è che i messaggi che invio all'HC-06 per mezzo di softwareserial all'HC-06 funzionano correttamente, e li ricevo sullo smartphone invece... i messaggi che gli impartisco via smartphone sono sbagliati

Cosa hai modificato tra questi due eventi? Ovvero, PRIMA dici che la comunicazione bidirezionale ti funzionava, poi dici che ORA non ti funziona più ... che cosa hai toccato ?

Ah ... con che baud rate stai lavorando ?

Guglielmo

Ciao Guglielmo,

grazie per l'aiuto, ora che rifletto una modifica c'è stata, ci ho pensato ma ho poi escluso potesse centrare, mi spiego meglio.

in modalità di configurazione, ovvero quando si possono impartire comandi AT al device ho riconfigurato il pin... ma non centra questo altrimenti entrambe le comunicazioni immagino non avrebbero funzionato... e... modificato il baud rate impartendo il comando:
AT+UART=115200,1,0 il quale setta il baud a 115200 bits/s, mette due stop bits...e la Parity a None... precedentemente era 9600,0,0. Ho però escluso che potesse essere questo il problema perchè in una delle due direzioni la comunicazione funziona, tu cosa ne pensi?

invece non riesco in effetti più neanche a impartire comandi AT pur avendo provato con un normalssimo usb-ttl converter... e realterm settando i parametri così come configurato... ma niente, non mi risponde ad alcun comando... scusate se prima non l'ho detto, ho però escluso potesse essere un problema di questo tipo perchè in una direzione la comunicazione funziona efficacemente... Tu cosa dici?

La SoftwareSerial, lo abbiamo provato più volte qui sul forum, NON va bene con velocità superiori ai 9600 ... figurati avere una connessione affidabile a 115200 :o

Torna a 9600 e vedrai che tutto funziona.

Guglielmo

caspita, questa non la sapevo, grazie!

il problema è che non sono più in grado di configurarlo, il device non risponde ai miei comandi AT purtroppo, è questo il vero problema :cry:

SE hai a disposizione un Arduino MEGA … hai 4 porte seriali VERE che funzionano bene a 115200 … e puoi riconfigurare il HC-06 … ::slight_smile:

Altrimenti un adattatore Seriale <–> USB, lo colleghi lato USB al PC e lato Seriale TTL (3.3V) al HC-06 … :wink:

Guglielmo

Giustissimo ciò che mi consigli,

ma il device non risponde ai comandi AT che gli impartisco, sto usando un convertitore ttl-seriale 3.3V, testato su un altro modulo e funziona, ma con il bluetooth in esame niente di niente.

se, una volta connesso al convertitore, lo accoppio e lo connetto al mio smartphone i due ricevono ed inviano i messaggi nel modo corretto:

  • se scrivo da smartphone: "X" sul monitor seriale leggo: "X"
  • se scrivo nel serial monitor: "X" da smartphone leggo: "X"

ma se disaccoppio i due... entrando in modalità AT... non funziona la trasmissione da serial monitor a hc-06...
Se pur... effettuando la disconnessione tramite smartphone... leggo sul monitor seriale:
"+DISC:SUCCESS"
"OK"

quindi HC-06 -->serial monitor funziona...
ma non è vero il contrario

non ne riesco a venire fuori, ho anche provato a modificare i parametri della porta mettendo uno o due stop bits... ma niente, non mi è possibile configurarlo

Non ricordo il HC-06, ma il fratello maggiore, HC-05, in modalità AT lavora a 38400, indipendentemente da come si è impostata la seriale per la modalità trasparente … ::slight_smile:

Dalla documentazione sembra che in modalità AT il modulo lavori a 9600 …

Guglielmo

Edit: Ti allego il datasheet.

HC-06 datasheet 201104 revised.pdf (757 KB)