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?
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 ?
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
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 … :
Dalla documentazione sembra che in modalità AT il modulo lavori a 9600 …