Ciao a tutti, sono un neofita.
Ieri ho caricato uno sketch per impostare un modulo bluetooth, l'hc06, con i comandi AT.
Ho impostato il nome, il pin, i baud, poi mi è venuta la bella idea di impostare il controllo di parità (AT+PE ... Lo so, sono un pirla...).
Ora il modulo non risponde più ai comandi AT.
Come posso risolvere? Ne compro uno nuovo?
Grazie a chi mi aiuterà.
Intanto ti do il datasheet del HC-06: HC-06 datasheet 201104 revised.pdf (757.0 KB), dopo di che, se hai cambiato la partità e l'hai portata ad "even" (AT+PE), modifica i parametri della seriale con cui ci parli per utilizzare tale parità.
Devi studiarti la classe Serial, metodo begin().
Guglielmo
Ti ringrazio tantissimo per avermi risposto così celermente.
Ho provato a modificare nello sketch il "serial.begin(9600)" in "serial.begin(9600, SERIAL_8E1)", ma il modulo non risponde ai comandi AT nemmeno così...
Comunque il modulo sembra funzionare: quello che scrivo dal bt del telefono, viene visualizzato sul monitor seriale (indipendentemente da come imposto il serial.begin()...)
L'unico problema è che non risponde più ai comandi AT.
Questo è lo sketch usato:
// Basic Bluetooth sketch HC-06_01
// Connect the Hc-06 module and communicate using the serial monitor
//
// The HC-06 defaults to AT mode when first powered on.
// The default baud rate is 9600
// The Hc-06 requires all AT commands to be in uppercase. NL+CR should not be added to the command string
//
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX | TX
// Connect the HC-06 TX to the Arduino RX on pin 2.
// Connect the HC-06 RX to the Arduino TX on pin 3 through a voltage divider.
//
void setup()
{
Serial.begin(9600);
Serial.println("Enter AT commands:");
// HC-06 default serial speed is 9600
BTserial.begin(9600);
}
void loop()
{
// Keep reading from HC-06 and send to Arduino Serial Monitor
if (BTserial.available())
{
Serial.write(BTserial.read());
}
// Keep reading from Arduino Serial Monitor and send to HC-06
if (Serial.available())
{
BTserial.write(Serial.read());
}
}
In conformità al REGOLAMENTO , punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita
che si trova in basso del tuo post), seleziona TUTTA la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice.
Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE). Per maggiori informazioni ... punto 17.2 del succitato regolamento. Grazie.
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice, nel rispetto del suddetto regolamento nessuno ti risponderà, quindi ti consiglio di fare il tutto al più presto. ![]()
Ti ringrazio nuovamente e mi scuso.
Sarà meglio che mi legga il regolamento prima di combinare altri guai...
... sicuro di non aver toccato anch la velocità di trasmissione? Comunque puoi provare sia con le varie parità (E, O, nulla), sia a cambiare velocità ... oppure ... lo usi come "soprammobile" e ti compri un HC-05 che, costa uguale, ma è molto più flessibile (ad esempio puô fare sia da master che da slave) ![]()
Guglielmo
Sì, la velocità di trasmissione l'ho lasciata a 9600 baud, tanto più che con lo sketch che ho postato l'arduino comunica con il monitor seriale (scrivo da telefono e leggo su monitor).
Sono solo i comandi AT che non vanno.
Ho anche provato a cambiare le impostazioni della porta com del pc (mettendo la parità), senza risultato.
Questa mi sembra la soluzione migliore. ![]()
... questo potrebbe non voler dire nulla, ad esempio, il HC-05, di default lavora a 9600 baud, ma, in modalità AT, di default va a 38'400 baud. ![]()
Guglielmo
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.